2015-03-25 19 views
9

Elasticsearch kümemde (1.2.1) indislere istatistikler/sayımlar almaya çalışıyorum. Toplam birincil belge sayısını ve disk üzerindeki boyutlarını almak için Indices Stats API (_stats uç noktası) kullanıyordum. Ancak, Count API (_count son nokta) ile deneme yapmaya başladım ve değerlerin hizalanmadığını fark ettim._stats versus tarafından döndürülen elastik arama belge sayısı _count

Bu değerler arasındaki fark nedir? Dokümantasyondaki bir ipucu, Endeksler İstatistikleri'nden döndürülen değerin endeksi yenilerken değişebileceğini göstermesine rağmen, belgeden tamamen açık değildir. Bu, Lucene katmanından daha düşük seviye bir değer olup olmadığını merak ediyor.

Endeksler İstatistikleri API

localhost:9200/my_index/_stats 

...snip... 

"_all" : { 
    "primaries" : { 
    "docs" : { 
     "count" : 8284, 
     "deleted" : 87 
    }, 
    } 
} 

...snip... 

Sayım API

localhost:9200/my_index/_count 

{ 
    "count" : 6854, 
    "_shards" : { 
    "total" : 40, 
    "successful" : 40, 
    "failed" : 0 
    } 
} 
Aslında

cevap

17

, docs.count geri Endeksler aldığım API ayrıca endekste mevcut iç içe belgelerin sayısını içerir istatistik her zaman olacak bu yüzden Sayım API'sından geri döndüğünüz sayımdan daha büyük veya eşittir, bu da yalnızca üst düzey belgelerin sayısını, yani bir arama sorgusundan döndürülen belgeleri döndürür.

Bu nedenle, gönderdiğiniz numaralara bakarak, dizininiz, eşlemede türü nested olan alanlara sahip belgeler içeriyor gibi görünüyor. Sesler doğru mu?

+0

Bu yardım hiç mi? – Val

+1

Bu doğru cevap olarak kabul edilmelidir. – Midwire