elasticsearch,Amazon Web Services,elasticsearch" /> elasticsearch,Amazon Web Services,elasticsearch" />

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

Amazon web services 多节点弹性搜索集群负载均衡器每次返回不同排名的结果,amazon-web-services,elasticsearch,Amazon Web Services,elasticsearch,我们在aws上有一个ES集群,其中有两个节点,每个节点有一个具有相同索引的碎片。 我们有按排序顺序返回的文档,首先按分数,然后按日期 现在返回的分数都相等,日期也相等 当我们运行相同的查询时,请求之间的文档顺序不同 有没有办法使订单保持一致 当所有其他排序键相等时,elasticsearch按所谓的(\u doc)对文档进行排序,即文档在索引中的显示顺序。主碎片和副本碎片之间的顺序可能不同。为了提高用户结果的一致性,您可以为每条记录添加一个唯一的额外排序键,例如\u uid字段 或者,您可以使用

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

现在返回的分数都相等,日期也相等

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


有没有办法使订单保持一致

当所有其他排序键相等时,elasticsearch按所谓的(
\u doc
)对文档进行排序,即文档在索引中的显示顺序。主碎片和副本碎片之间的顺序可能不同。为了提高用户结果的一致性,您可以为每条记录添加一个唯一的额外排序键,例如
\u uid
字段


或者,您可以使用您的用户会话id或他们的用户名作为共享,将每个用户绑定到特定的碎片(如果可用)。这样,虽然不同的用户可能仍会看到不同的结果,但只要他们所连接的碎片处于活动状态,每个用户都会始终看到相同的顺序。

当所有其他排序键相等时,elasticsearch会按所谓的(
\u doc
)对文档进行排序,即文档在索引中的显示顺序。主碎片和副本碎片之间的顺序可能不同。为了提高用户结果的一致性,您可以为每条记录添加一个唯一的额外排序键,例如
\u uid
字段


或者,您可以使用您的用户会话id或他们的用户名作为共享,将每个用户绑定到特定的碎片(如果可用)。这样,虽然不同的用户可能仍然会看到不同的结果,但只要他们所连接的碎片还活着,每个用户都会始终看到相同的顺序。

如果分数相等,日期相等,那么这是有意义的,因为理论上,他们的顺序都是相同的。如果分数相等,日期相等,那么这是有意义的,因为理论上它们的顺序都是相同的。您必须添加另一个排序,如字母顺序,再加上第三个属性,以使顺序一致。