springboot3集成elasticsearch8时,Completion类型一直添加不成功,这是为啥?
我的实体类:
@CompletionField(maxInputLength = 200)
private Completion titleSuggestion;
保存的方法
UrlIndex urlIndex = elasticsearchOperations.save(url);
通过devtools查询是不是Completion类型:
GET /xxx/_mapping
发现是text类型
"titleSuggestion": {
"properties": {
"input": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
},
这是为什么?
回复
1个回答
test
2024-06-29
解决了,原来要提前声明设置,如下:
PUT xxx
{
"mappings": {
"properties": {
"titleSuggestion": {
"type": "completion",
"analyzer": "ik_smart"
}
}
}
}
加好之后,再执行命令就可以看到了:
GET /xxx/_mapping
执行结果成功了!
"titleSuggestion": {
"type": "completion",
"analyzer": "ik_smart",
"preserve_separators": true,
"preserve_position_increments": true,
"max_input_length": 50
},
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容