多节点弹性搜索集群负载均衡器每次都返回不同的排名结果

时间:2016-07-21 19:55:03

标签: amazon-web-services elasticsearch

我们在aws上有一个ES集群,我们有两个节点,每个节点有一个具有相同索引的分片。 我们的文件按排序顺序首先按分数返回,然后按日期返回。

现在返回的分数全部相等,且日期相等。

当我们运行相同的查询时,文档的顺序在请求之间有所不同。

有没有办法让订单保持一致?

1 个答案:

答案 0 :(得分:3)

当所有其他排序键相等时,elasticsearch通过所谓的index order_doc)对文档进行排序,这是文档在索引中出现的顺序。主要和副本分片之间的顺序可能不同。为了提高用户结果的一致性,您可以添加对每条记录唯一的其他排序键,例如_uid字段。

或者,如果可以使用您的用户会话ID或其用户名preference,则可以将每个用户与特定分片绑定。这样,虽然不同的用户可能仍会看到不同的结果,但只要他们所附加的分片处于活动状态,每个用户就会始终看到相同的顺序。