2017-06-16 1 views
0

Ich habe einen Elasticsearch-Index, der ungefähr 2,5 Milliarden Dokumente mit ungefähr 18 Millionen verschiedenen Begriffen in einem analysierten Feld enthält. Ist es möglich, schnell die Anzahl der Dokumente zu ermitteln, die einen Begriff enthalten, ohne den Index zu durchsuchen?Anzahl der Dokumente, die einen Ausdruck in elasticsearch enthalten

Es scheint, als würde ES diese Informationen speichern, während es das Feld analysiert, oder vielleicht in der Lage sein, die Länge eines invertierten Indexes zu zählen. Wenn es einen Weg gibt, nach mehreren Begriffen zu suchen und die Dokumenthäufigkeit für jeden der Begriffe zu erhalten, wäre das noch besser. Ich möchte das regelmäßig tun, und ich kann nicht sagen, ob es einen effizienten Weg dafür gibt.

Antwort

1

Sie können die Count API verwenden, um nur die Anzahl von einer Abfrage anstelle einer vollständigen Dokumentauflistung zurückzugeben.

Soweit Elasticsearch gibt Ihnen eine Möglichkeit, dies ohne eine Abfrage zu tun: Ich bin einigermaßen zuversichtlich Elasticsearch hat keinen Speicher dieser Informationen außerhalb des Indexes, denn das ist genau das, was ein Lucene-Index bereits tut . Das ist ein invertierter Index, eine Karte von Dokumenten, die nach Begriffen indiziert sind. Lucene ist darauf ausgelegt, Dokumente effizient nach Begriffen zu suchen.

+0

Danke! Ich werde das mit meinem Kollegen besprechen. – neelshiv

Verwandte Themen