我正在尝试为ElasticSearch结果获得一致的评分,并且我需要克服第一部分中所述的问题:https://www.elastic.co/guide/en/elasticsearch/reference/master/consistent-scoring.html
我相信答案可能是使用首选项,例如_search?preference = _only_local或preference = xyzabc123。但是,我不确定。当我使用_search?search_type = dfs_query_then_fetch时,我得到了不同的分数,并且似乎search_type总是会给出最一致的评分。但是,由于结果与使用首选项参数进行的搜索不同,因此我不确定-结果的顺序会有所不同,因为使用偏好样式搜索的顶部结果在执行search_type样式搜索时得分较低(这意味着其他文档现在得分更高)。
首选项结果如下:
"took" : 13,"timed_out" : false,"_shards" : {
"total" : 5,"successful" : 5,"skipped" : 0,"failed" : 0
},"hits" : {
"total" : 1886,"max_score" : 4.765499,"hits" : ...
search_type结果如下:
"took" : 8,"max_score" : 4.68168,"hits" : ...
我对dfs_query_then_fetch犹豫不决,因为有一条注释说生产中不需要它,但是我需要一些东西可以将相同的结果返回到连续两次或更多次执行的查询中,而不会得到不同的结果每次设置一次(实际上,在不使用这些参数之一的情况下运行_search会返回两个不同的结果集,并在这两个之间来回翻转触发器。