我正在尝试在Elasticsearch中进行查询,但是我一次又一次地从elasticsearch获得不同的结果集以用于相同的查询。我的群集有3个分片和2个副本。我的第一个猜测是,这可能会发生,因为我尝试使用dfs_query_then_fetch进行查询,但我仍然遇到同样的问题,经过大量搜索后我发现它正在搜索的碎片正在改变所以我用偏好来查询。我仍然观察到同样的问题。我没有选择现在无法弄清问题是什么。 在这里粘贴我的查询
POST _search?search_type=dfs_query_then_fetch&preference=metiswayfinder
{
"query":{
"multi_match":{
"query":"this is a test",
"fields":[
"subject^3",
"message"
]
}
},
"sort":[
{
"_score":{
"order":"desc"
}
},
{
"incidentcount":{
"order":"desc"
}
}
]
}
相关性得分对我来说至关重要,我也观察到每次进行搜索时得分都会不断变化。 Elasticsearch提供不一致的结果集和不一致的分数。我可以用任何方式中和这两种情况而不需要太多改变。 添加分段查询结果
由于 Ashit
答案 0 :(得分:0)
看看https://www.elastic.co/guide/en/elasticsearch/reference/master/consistent-scoring.html
根据您帖子中的评论,您似乎已经确定删除具有复制功能的文档会导致此问题-尽管该帖子有助于解释原因。关于下一步该如何做,文章提出了以下建议:
解决此问题的推荐方法是使用一个字符串来标识已登录的用户(例如,用户ID或会话ID)为preference。这样可以确保给定用户的所有查询始终会打到相同的分片,从而使各个查询的得分保持更加一致。
希望对您有帮助!