2016-03-22 10 views
0

Ich habe eine Java-Anwendung, die JSON-Dokumente in ElasticSearch indexiert. Ich habe beobachtet, dass einige der Dokumente "fehlen", d. H. Wenn ich ElasticSearch abfrage, finde ich das Dokument nicht. Und das ist kein konsistentes Verhalten. Ich sehe einige der Dokumente gut gehen.Elastic Search nicht Indizierung ** einige ** der Dokumente

Ich sehe keinen Fehler in meinem Anwendungsprotokoll (die Indizierung ist in try-catch) ODER sogar im Elastic-Suchprotokoll. Irgendwelche Gedanken darüber, wie man dieses Problem lösen kann?

Ich verwende JEST-basierten Client, um über das io-searchbox-Dienstprogramm eine Verbindung zu elasticsearch herzustellen. Und, elastische Suche Version ist 1.3.6.

+1

Bitte geben Sie den Code ein, den Sie zum Indexieren verwenden – jhilden

Antwort

0

Es stellte sich heraus, dass das Problem mit der dynamischen Zuordnungsfunktion der elastischen Suche zusammenhängt. Das ursprüngliche Dokument, das indiziert wurde, hatte einen anderen Datentyp als das neue Dokument. Dies führte zu einer elastischen Suche, bei der das neue Dokument nicht indexiert wurde.

0

Überprüfen Sie die elastischen Protokolle (\ ELASTIC_HOME \ elasticsearch-2.3.2 \ logs). Es gibt ein sehr klares Bild, warum Ihre Daten nicht indiziert werden.

0

Ja mit 2.3.2. Spalten mit ihrem DataType sind in der Indexdatei eindeutig. Wenn beispielsweise die Spalte "Gehalt" mit dem Datentyp "Zeichenfolge" vorhanden ist und ein anderes Dokument dieselbe Spalte "Gehalt" mit dem Datentyp "numerisch" enthält. ES wird durch Ausnahme und alle Ausnahmen in Protokolldateien abgefangen. Und Sie werden das Gefühl haben, dass Dokumente nicht indiziert sind. Wenn Protokolldateien eindeutig überprüft werden, erfahren Sie die Ursache.

Verwandte Themen