Elasticsearch中docs.count的值还包括docs.deleted的值吗?

时间:2018-11-22 10:38:31

标签: elasticsearch

我有一个包含以下docs.countdocs.deleted的索引。

docs.count   = 2762694
docs.deleted = 2508162

docs.count是磁盘中的文档总数,包括标记为已删除的文档吗? 还是磁盘中的文档总数是docs.count + docs.deleted

更新:为澄清我的疑虑,如果docs.count中也包含docs.deleted,则在上面的示例中,大约90%的文档被删除。但是另一方面,docs.deleted不算作docs.count的一部分,它们是附加的,因此仅删除了47%的文档。基于此,我可以决定使用强制合并的重要性。

2 个答案:

答案 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不会就地更新文档,而是会删除较旧的文档,然后将其替换为较新的文档。