弹性搜索文档计数

时间:2016-04-26 06:26:39

标签: elasticsearch indexing count

我正在进行运行2.2版本的弹性搜索。我已经创建了索引和加载的示例文档。我发现了一些问题。当我给出

GET index/type/_count

我得到了正确答案

{
   "count": 9998,
   "_shards": {
      "total": 5,
      "successful": 5,
      "failed": 0
   }
}

但是当我看到使用http://IP:9200/_cat/indices?v

的东西时
health status index pri rep docs.count docs.deleted store.size pri.store.size     
yellow open   index  5   1      79978            0     32.1mb         32.1mb 

docs.count:79978。哪个错了。

为什么我看到docs.count的值错误。确切的文件数是9998

1 个答案:

答案 0 :(得分:18)

GET index/type/_count将返回顶级文档计数。

docs.count中的

_cat/indices返回所有文档的计数,包括为嵌套字段创建的人工文档。

这就是你看到差异的原因:

  • 前一个计数(即9998)将告诉您索引中有多少 Elasticsearch文档,即您已编入索引的数量。
  • 后一个计数(即79978)将告诉您索引中有多少 Lucene文档

因此,如果一个ES文档包含一个包含5个子元素的嵌套字段,您将看到1个ES文档,但是6个Lucene文档。根据计数来判断,每个ES文档中都有7到8个嵌套元素。