Ich habe einen ElasticSearch-Index mit rund 200 Mio. Dokumenten, Gesamtindexgröße von 90 GB.Wie man ElasticSearch schnell neu indiziert?
Ich habe das Mapping geändert, daher möchte ich, dass ElasticSearch alle Dokumente neu indiziert.
Ich schrieb ein Skript, das einen neuen Index erstellt (mit der neuen Zuordnung), dann geht über alle Dokumente im alten Index und legt dann in die neue.
Es scheint zu funktionieren, aber das Problem ist, dass es extrem langsam arbeitet. Es begann mit 300 Dokumenten/Minute vor zwei Tagen, und jetzt ist die Geschwindigkeit 150 Dokumente/Minute.
Das Skript läuft auf einem Rechner im gleichen Netzwerk die elastischen Suchmaschinen in.
Mit einer solchen Geschwindigkeit wird es einen Monat für die Wieder Index benötigen zu beenden.
Kennt jemand etwas schnellere Technik, um einen elastischen Suchindex neu zu indizieren?
Dank Karmi! Haben Sie eine Näherung, wie hoch der erwartete Zeitpunkt für eine solche Operation bei einem Index von 90 GB (200 Mio. Dokumente) sein sollte? – diemacht
Es hängt davon ab, ob Sie die Operation paralellisieren können oder nicht. Elasticsearch kann ziemlich hohe Schreiblast verarbeiten, aber das Indexing-Skript ist normalerweise der Engpass. Versuchen Sie, nur den Teil der Daten neu zu indizieren, und extrapolieren Sie - die Leistung der Scan-/Scroll-API sollte nicht mit der Zeit "abfallen". – karmi
Es scheint, dass Tire veraltet ist. Elastic listet nun Kunden hier auf: https://github.com/elastic/elasticsearch-rails – spuder