在进行预先搜索时,Elasticsearch更喜欢与部分匹配完全匹配

时间:2015-04-09 10:49:05

标签: elasticsearch

我已将es配置为自动完成功能,我也可以获得完全匹配建议的精确匹配。

例如,如果有人输入伦敦,api首先返回伦敦然后返回伦敦德里。但如果有人输入Londo,那么es首先返回伦敦德里,然后返回伦敦。当然,伦敦比伦敦德里更接近。

同样的事情发生在"纽约"和约克。 "纽约"当我搜索约克时,我比约克更喜欢。

我正在使用此处提供的解决方案。 Favor exact matches over nGram in elasticsearch

1 个答案:

答案 0 :(得分:1)

此代码对我有用:

"query": {
    "match": {
         "message": {
              "query": inputQuery,
              "fuzziness": 3,
              "prefix_length": 2
         }
     }
 }

首先,您应该使用fuzziness - ES documentation

我希望它也能帮到你。