我有一个包含以下docs.count
和docs.deleted
的索引。
docs.count = 2762694
docs.deleted = 2508162
docs.count
是磁盘中的文档总数,包括标记为已删除的文档吗?
还是磁盘中的文档总数是docs.count
+ docs.deleted
?
更新:为澄清我的疑虑,如果docs.count
中也包含docs.deleted
,则在上面的示例中,大约90%的文档被删除。但是另一方面,docs.deleted
不算作docs.count
的一部分,它们是附加的,因此仅删除了47%的文档。基于此,我可以决定使用强制合并的重要性。
答案 0 :(得分:5)
您在_cat/indices
API响应中看到的计数是Lucene级别的计数,因此docs.count
还包括隐藏的嵌套文档。
docs.deleted
实际上是标记为已删除但尚未清除的文档。
如果您希望真实地计算文档数量,则应使用_cat/count
API,该API提供的干净数量表示活动文档的数量,并且不包括尚未被合并清除的已删除文档过程。
答案 1 :(得分:2)
不。
docs.count
不包括docs.deleted
。
docs.deleted
是标记为由Elasticsearch删除的文档。
我不知道您要执行的确切操作,但是docs.deleted
可能会很高,即使您更新了许多文档。由于Elasticsearch不会就地更新文档,而是会删除较旧的文档,然后将其替换为较新的文档。