2016-09-27 3 views
1

Ich versuche, einen Asciifolding-Filter zum vorhandenen Elasticsearch-Index hinzuzufügen, aber die Abfrageergebnisse sind wie erwartet. Wenn ich jedoch die gleiche Prozedur auf den sauberen Index anwende, funktioniert es wie erwartet.elasticsearch - Hinzufügen eines Asciifolding-Filters zur bestehenden Sammlung

Bedeutet es, dass ich, wenn ich einen Filter hinzufüge, das Update irgendwie über alle Dokumente erzwingen muss, um sie oder etwas neu zu indizieren?

+0

bauen Sie meinen, dass sie nicht wie erwartet, wenn Sie den Filter angewendet haben zu einem bestehenden Index? – fylie

+0

ja, die Ergebnisse sind tatsächlich sehr wierd. – speedingdeer

Antwort

1

Wenn Sie einen Filter hinzufügen, müssen Sie die vorhandenen Dokumente neu indizieren. This Leitfaden zum Reindexing Elasticsearch Dokumente mit Logstash wird Ihnen helfen. Im Wesentlichen werden Sie die vorhandenen Dokumente in Logstash eingeben, Ihren Filter hinzufügen und sie in einem neuen Index ausgeben.

1

Wenn Sie einen Filter/Analysator hinzufügen, sind die vorhandenen Dokumente nicht betroffen (Dokumente sind immutable in elasticsearch/lucene). Dies bedeutet, dass nur die neuen Dokumente mit den neuen Konfigurationen gespeichert werden.

Sie können Ihre neuen Konfigurationen anwenden und dann vorhandene Daten erneut indizieren. Wenn Sie Version 2.3 und höher verwenden, können Sie die reindex API verwenden. Wenn nicht, dann müssen Sie etwas wie @pancake vorgeschlagen verwenden oder Sie könnten einen eigenen Reindex-Mechanismus mit den scroll und bulk apis

Verwandte Themen