调整模糊性以改进ElasticSearch中的搜索结果

时间:2016-10-04 19:37:43

标签: elasticsearch

我尝试使用模糊参数来改进搜索结果,但是,我有一个特定于语言的问题:

在西班牙语中,许多女性名字和单词只添加了一个" a"在这个单词的男性版本的最后,当我搜索像#34; Daniela"将模糊设置为自动或1,我得到返回" Daniel"因此,我必须输入" Danielaa"搜索匹配" Daniela"

有关此问题的任何帮助吗?

1 个答案:

答案 0 :(得分:0)

听起来你想做的是比模糊匹配更喜欢完全匹配。作为普通查询的模糊查询aren't scored,您需要自己处理。

我过去通过使用带有两个Should子句的bool查询来解决这个问题 - 一个用于增强,非模糊查询,另一个用于模糊查询。

这些方面的东西(未经测试,可能需要一些调整,但应该说明这个想法):

{
    "bool" : {
        "should" : {
            "match" : { "name" : { 
                "query" : "kimchy",
                "boost" : 2
            }}
        }, 
        "should" : {
            "match" : { "name" : {
                "query" : "kimchy",
                "fuzziness" : "auto"
            }}
        }
    }
}