2012-07-27 20 views
5

Ich schreibe einen Code, in den wir 200.000 Elemente in einen ElasticSearch-Index einfügen.Abrufen einer Indexelementanzahl mit ElasticSearch

Während dies funktioniert, wenn wir eine Anzahl von Elementen im Index zählen, um sicherzustellen, dass alles hineingelaufen ist, erhalten wir nicht die gleiche Nummer. Wenn wir jedoch ein oder zwei Sekunden warten, ist die Zählung korrekt.

Gibt es also einen programmatischen Weg, wie wir eine echte Zählung von ElasticSearch bekommen können, ohne sleep oder ähnlich?

Antwort

7

Neu indexierte Datensätze werden in den Suchergebnissen erst nach der Operation Refresh sichtbar. Die Aktualisierung wird automatisch mit der durch index.refresh_interval festgelegten Frequenz aufgerufen, die standardmäßig 1s ist. Beim Schreiben von ElasticSearch-Tests ist es üblich, nach der Indizierung eine Aktualisierung aufzurufen, um sicherzustellen, dass alle indizierten Datensätze in Suchvorgängen verfügbar sind. Übermäßige Auffrischungsaufrufe (z. B. nach jedem Datensatz) im Produktionscode können jedoch die Indexierungsleistung von elasticsearch beeinträchtigen.

Verwandte Themen