不为失败找理由,要为成功找方法。

es索引查询结果不一致,每次查询结果在返回1条和返回5条间进行切换

Elasticsearch | 作者 matt_jn | 发布于2020年07月21日 | 阅读数:186

主要问题:es中索引查询结果不一致,每次查询结果在返回1条和返回5条(返回5条时结果包含返回一条时的数据)间进行切换。ES索引的配置为3个shard,1个replica,具体setting如下:
"settings": {
"index": {
"refresh_interval": "1s",
"number_of_shards": "3",
"provided_name": "events-history-thumb451201265-2020070915",
"creation_date": "1595301025420",
"analysis": {
"analyzer": {
"default": {
"type": "ik_max_word"
}
}
},
"number_of_replicas": "1",
"uuid": "GEYOmAevQ9OEck87Ti2U2g",
"version": {
"created": "5061699"
}
}
通过es-head插件查看索引状态,发现primaries中的doc个数为1,而total中的doc是6,结果不一致(在两个副本场景下,total中的doc个数应该是primaries的2倍,具体如下:
"primaries": {
"docs": {
"count": 1,
"deleted": 9
},
"store": {
"size_in_bytes": 149316,
"throttle_time_in_millis": 0
}

-------------------------------------------------------

"total": {
"docs": {
"count": 6,
"deleted": 55
},
"store": {
"size_in_bytes": 182359,
"throttle_time_in_millis": 0
},
通过执行/_cat/shard发现该索引中有个shard副本4条数据,但主副本没有数据,如下所示:
index                                    shard prirep state   docs  store ip              node
events-history-thumb451201265-2020070915 1 p STARTED 0 46.3kb 192.168.77.181 cdh-worker-1
events-history-thumb451201265-2020070915 1 r STARTED 0 191b 192.168.146.247 cdh-worker-3
events-history-thumb451201265-2020070915 2 r STARTED 4 12.7kb 192.168.164.71 cdh-worker-2
events-history-thumb451201265-2020070915 2 p STARTED 0 53.2kb 192.168.77.181 cdh-worker-1
events-history-thumb451201265-2020070915 0 p STARTED 1 19.2kb 192.168.164.71 cdh-worker-2
events-history-thumb451201265-2020070915 0 r STARTED 1 19.7kb 192.168.146.247 cdh-worker-3

不清楚是什么原因会导致es中数据出现不同步?
已邀请:

heli - 90后IT男

赞同来自:

你的待查询的数据是有过删除操作的,es删除数据的时候,会做一些处理,导致不同的分片上数据的状态不一样
查询请求会随机分配个主分片或者副本,所以查询的数据不一样
你可以refresh,flush一下再查询看看

要回复问题请先登录注册