我们有一个基本的ES实例,我正在考虑一个只有一个主分片和一个副本分片的索引。
做一个基本的布尔查询,hits.total
取决于我们击中的碎片。我得到一贯指定?preference=_primary
或?preference=_replica
的不同数字。
分片在某种意义上有所不同,因为使用_cat
,我会看到:
index shard prirep state docs store ip node
admin_ch-v1 0 r STARTED 3220 295.2mb x.x.x.x JO8tqXw
admin_ch-v1 0 p STARTED 3220 294mb x.x.x.x aCqEzYQ
但是,文档的总数是相同的。我还编写了一个脚本,专门从每个分片中获取所有文档(使用preference=f"_only_nodes:xxx"
并进行比较,并且以脚本中的错误为模,一切都相同。
这不是复制不跟上的问题,因为更新时索引非常低,而分片数相隔两个小时测试时分片的数量却没有变化。
我看到了this question,但似乎不适用于我们的情况。
所以...发生了什么事?文件计数本质上是不可靠的吗?是否有解释到文档的链接?
(也问here)