es 相同条件 执行两次 不同结果 ,求解

Elasticsearch | 作者 randolph555 | 发布于2018年09月03日 | 阅读数:1111


同样的DSL 目前4个node,分片应该每个都是默认5个,执行两次 返回不同的结果,没有分值 ,不知是什么原因导致
1535967064(1).jpg


1535967079(1).jpg

 
已邀请:

JackGe

赞同来自: laoyang360

如果数据没有变化,而每次查询返回的结果排序不同,但是命中数据总量相同。可能由于主分片和副本分片打分排序结果顺序不同,你查询时可以指定查询主分片,_search?preference=_primary

God_lockin

赞同来自: randolph555

数据不全,我感觉可能是你这俩数据的opencardtime是一样的,不过在不同的分片上得分不一样
 
所以from=0,size=1的时候拿出来一个新界一个温州
 
所以数据量大,或者像JackGe说的那样指定检索分片比较好

rochy - rochy_he

赞同来自:

看搜索添加你加入了排序,根据 opencardtime 进行排序,如果数据有变化,搜索结果不一样是正常的

elasticStack - 90后it大数据男

赞同来自:

你所有分数在排序面前毫无作用

zqc0512 - andy zhou

赞同来自:

排序问题。你指定一个ID ,若是每次搜索出来同一个ID值不一样才有鬼

yayg2008

赞同来自:

应该是主副分片的数据不一致导致的。在索引上执行flush/sync ,应该可以将数据同步。

vearne - stay foolish stay hungry

赞同来自:

还有一个思路,如果是批量的数据导入的话,可以写数据的时候,只开一个分片,数据写完以后,再开副本

要回复问题请先登录注册