ElasticSearch:是否有可能给出模糊性较低的分数?

Dav*_*vid 5 elasticsearch

我正在运行multi_match(使用most_fields和"fuzziness":"AUTO")查询"Rob",但我在"Rob"之前得到了"Ron"的结果.

如果我删除模糊性,它只显示Rob,而不是Ron.但是,我确实想要使用模糊性,我只是希望所有完全匹配的结果更相关并且首先显示.它没有发生.调查'解释',表明'Ron'的IDF略高一些.

回到我的问题 - 是否可以为模糊元素配置一些"提升"或"得分"?

Dav*_*vid 7

好的,基于此处的建议我得到了以下内容:https: //medium.com/@oysterpail/fuzzy-queries-ae47b66b325c#.a4uxw5z0b

他们的解决方案是使用bool查询should.我不能这样做,因为我需要查询的这一部分must(我使用should部分进行相关性),must实际上是bool查询AND.然而,must+ or做了诀窍:

{
   "query":{
      "bool":{
         "must":{
            "or":[
               {
                  "multi_match":{
                     "query":"rob",
                     "fields":[
                        "username",
                        "firstName",
                        "lastName"
                     ],
                     "type":"most_fields",
                     "fuzziness":"AUTO"
                  }
               },
               {
                  "multi_match":{
                     "query":"rob",
                     "fields":[
                        "username",
                        "firstName",
                        "lastName"
                     ],
                     "type":"most_fields"
                  }
               }
            ]
         }
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

这样,来自fuzziness零件的结果仅与查询的第一部分匹配,而完全匹配结果与两个零件匹配,因此它们首先显示.