2016-04-26 85 views
4

我正在運行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

+0

你可能有文檔在同一個索引一些其他類型,嘗試GET指數/ _count確認 –

+0

{ 「計數」:9998, 「_shards」:{ 「總」:5, 「成功」:5 , 「失敗」:0 } }我得到相同的9998.當我給GET索引/ _count – Backtrack

+0

你的映射中有嵌套類型的字段嗎? – Val

回答

7

GET index/type/_count將返回頂級文檔計數。

docs.count in _cat/indices返回所有文檔的計數,包括爲嵌套字段創建的人工文檔。

這就是爲什麼你看到一個區別:

  • 前者計數(即9998)會告訴你多少Elasticsearch文件都在你的指數,即你有多少索引。
  • 後一個計數(即79978)會告訴您索引中有多少個Lucene文檔

因此,如果一個ES文檔包含一個嵌套字段和5個子元素,您將看到1個ES文檔,但是6個Lucene文檔。通過計數來判斷,每個ES文檔中都有7到8個嵌套元素。