我已将es配置为自动完成功能,我也可以获得完全匹配建议的精确匹配。
例如,如果有人输入伦敦,api首先返回伦敦然后返回伦敦德里。但如果有人输入Londo,那么es首先返回伦敦德里,然后返回伦敦。当然,伦敦比伦敦德里更接近。
同样的事情发生在"纽约"和约克。 "纽约"当我搜索约克时,我比约克更喜欢。
我正在使用此处提供的解决方案。 Favor exact matches over nGram in elasticsearch
答案 0 :(得分:1)
此代码对我有用:
"query": {
"match": {
"message": {
"query": inputQuery,
"fuzziness": 3,
"prefix_length": 2
}
}
}
首先,您应该使用fuzziness
- ES documentation
我希望它也能帮到你。