es查询时,同一个文档,每次查询的得分不一样,总是在两个值之间来回切换

作者 aw627221526 | 发布于2017年12月12日 | 阅读数:2046

大神,你好!
请教一个问题 ,对es查询时,同一个文档,每次查询的得分不一样,总是在两个值之间来回切换,然后我看了下es中的分片数据,同一个分片的主分片和副本分片数据大小不一样。。这个是为什么?
已邀请:

kennywu76 - wood@Ctrip

赞同来自: private_void liujia

 
在文档数量比较少, 文档有过update和delete的情况下,比较容易出现主副片之间统计信息不一致的问题,从而同一个搜索落到不同分片上计算出来的得分不一致问题。
 相关的文档在这里可以查到:
https://www.elastic.co/guide/c ... .html
https://www.elastic.co/guide/e ... .html

这里有类似问题的讨论: [url=https://elasticsearch.cn/question/2275]https://elasticsearch.cn/question/2275​[/url] 
 
 

kennywu76 - wood@Ctrip

赞同来自:

因为主副分片的refresh过程是相互独立的,在有持续写入的情况下,主副分片包含的数据不是严格一致的。 所以同个搜索多次执行的时候,在主副分片来回执行会导致结果“跳动”的情况。 解决办法上可以在搜索的时候借助preference参数来规避这个问题。 参考: https://www.elastic.co/guide/e ... rence
 
匿名用户

匿名用户

赞同来自:

但是,我在查询的时候并没有持续写入的情况。在数据写入完成后,对es只有查询操作。附件上是我对同一个搜索词进行两次查询时,返回的结果。查询时,并没有对es有写入的操作,我看同一个节点上的主分片和副本分片数据还不一致

zhangg7723

赞同来自:

数据写入之后有没有断电或断网的情况

private_void - 一只猹

赞同来自:

我也遇到过这类问题。重新全量了一遍索引就好了,目前问题原因还没分析出来。有大神了解原因的话,求分享。

要回复问题请先登录注册