2015-03-25 7 views
9

Ich versuche, Statistiken/zählt auf Indizes in meinem Elasticsearch-Cluster (1.2.1). Ich habe den Indices Stats API (_stats Endpunkt) verwendet, um die Gesamtzahl der primären Dokumente und ihre Größe auf der Festplatte zu erhalten. Ich begann jedoch mit dem Count API (_count Endpunkt) zu experimentieren und bemerkte, dass die Werte nicht übereinstimmen.Elasticsearch Dokument Anzahl von _stats im Vergleich zu _count

Was ist der Unterschied zwischen diesen Werten? Aus der Dokumentation geht nicht ganz klar hervor, obwohl ein Hinweis in der Dokumentation darauf hinweist, dass sich der Wert, der von Indicies Stats zurückgegeben wird, ändern kann, wenn der Index aktualisiert wird. Das lässt mich fragen, ob dies ein niedrigerer Wert von der Lucene-Ebene ist.

Indizes Stats API

localhost:9200/my_index/_stats 

...snip... 

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

...snip... 

Count API

localhost:9200/my_index/_count 

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

Antwort

17

Eigentlich ist die docs.count Sie aus den Indizes zurück Statistik API auch die Anzahl der verschachtelten Dokumente, die in dem Index enthält so wird es immer größer oder gleich dem Zählwert sein, den Sie von der Count-API erhalten, die nur die Anzahl der Dokumente der obersten Ebene zurückgibt, dh Dokumente, die von einer Suchabfrage zurückgegeben würden.

Nach den von Ihnen geposteten Zahlen zu beurteilen, sieht Ihr Index also Dokumente mit Feldern aus, deren Typ nested im Mapping lautet. Klingt richtig?

+0

Hat das überhaupt geholfen? – Val

+1

Dies sollte als die richtige Antwort akzeptiert werden. – Midwire

Verwandte Themen