我正在运行multi_match(使用most_fields和"fuzziness":"AUTO")查询"Rob",但我在"Rob"之前得到了"Ron"的结果.
如果我删除模糊性,它只显示Rob,而不是Ron.但是,我确实想要使用模糊性,我只是希望所有完全匹配的结果更相关并且首先显示.它没有发生.调查'解释',表明'Ron'的IDF略高一些.
回到我的问题 - 是否可以为模糊元素配置一些"提升"或"得分"?
好的,基于此处的建议我得到了以下内容: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零件的结果仅与查询的第一部分匹配,而完全匹配结果与两个零件匹配,因此它们首先显示.
| 归档时间: |
|
| 查看次数: |
1289 次 |
| 最近记录: |