vin*_*t17 6 autocomplete elasticsearch search-suggestion
我正在使用弹性搜索完成建议,并且遇到了一些问题,它总是产生类似的结果.
假设我使用以下语句进行搜索:
"my_suggestion": {
> "text": "ni",
> "completion": {
> "field": "my_name_for_sug"
> }
> }
Run Code Online (Sandbox Code Playgroud)
并获得以下结果:
"my_suggestion" : [ {
"text" : "ni",
"offset" : 0,
"length" : 2,
"options" : [ {
"text" : "Nine West",
"score" : 329.0
}, {
"text" : "Nine West ",
"score" : 329.0
}, {
"text" : "Nike",
"score" : 295.0
}, {
"text" : "NINE WEST",
"score" : 168.0
}, {
"text" : "NINE WEST ",
"score" : 168.0
} ]
} ],
Run Code Online (Sandbox Code Playgroud)
所以问题是如何合并或汇总相同的结果,如"NINE WEST"和"NINE WEST".
映射是:
"my_name_for_sug": {
"type": "completion"
,"analyzer": "ik_max_word"
,"search_analyzer": "ik_max_word"
,"payloads": true
,"preserve_separators": false
}
Run Code Online (Sandbox Code Playgroud)
其中ik_max_word是一个特定于中国的分析仪,它可以完成标准分析仪的工作.
谢谢
Elastic Suggesters 自动删除相同输出的重复项(至少到 2.x 为止)。我还没有尝试过 5.x,那里的建议器有一些变化。问题似乎出在您的索引分析器上,它正在对您的文档建立索引,以便:
"text" : "Nine West",
"text" : "Nine West ",
"text" : "NINE WEST",
"text" : "NINE WEST ",
并不完全相同。您需要使用分析器对它们进行索引,该分析器会小写标记,并去除多余的空格等。一旦您这样做,您应该会获得重复的建议输出,如您所愿。
| 归档时间: |
|
| 查看次数: |
362 次 |
| 最近记录: |