2013-06-09 6 views
6

J'ai un index ElasticSearch avec environ 200M documents, la taille totale de l'index de 90Gb.Comment réindexer rapidement ElasticSearch?

J'ai modifié le mappage, donc je voudrais qu'ElasticSearch réindexe tous les documents.

J'ai écrit un script qui crée un nouvel index (avec le nouveau mappage), puis passe en revue tous les documents de l'ancien index et les place ensuite dans le nouveau.

Cela semble fonctionner, mais le problème est que cela fonctionne extrêmement lentement. Il a commencé avec 300 documents/minute il y a deux jours, et maintenant la vitesse est de 150 documents/minute.

Le script fonctionne sur une machine dans le même réseau les machines de recherche élastiques.

Avec une telle vitesse, il faudra un mois pour la réindexation pour terminer.

Quelqu'un connaît-il une technique plus rapide pour ré-indexer un index de recherche élastique?

Répondre

0

La meilleure façon de réindexer avec Elasticsearch est d'utiliser les API scan et scroll, qui devraient être supportées par Pyes.

Il semble que la bibliothèque Pyes ait une méthode reindex, mais je n'en ai pas l'expérience.

(Si vous souhaitez obtenir plus en utilisant Ruby sur Python :), le pneu client Ruby a une méthode Index#reindex: https://github.com/karmi/tire/blob/master/test/integration/reindex_test.rb. Il devrait être assez rapide pour vos données)

+0

Merci Karmi! Avez-vous une approximation de ce qui devrait être le temps prévu pour faire une telle opération sur un index de 90Gb (documents de 200M)? – diemacht

+0

Cela dépend si vous serez en mesure de paralelliser l'opération ou non. Elasticsearch peut gérer une charge d'écriture assez élevée, mais le script de réindexation est généralement le goulot d'étranglement. Essayez de ne réindexer que la partie des données, et extrapolez - les performances de l'API scan/scroll ne devraient pas "décroître" au fil du temps. – karmi

+2

Il semble que Tyr a été déprécié. Elastic répertorie maintenant les clients recommandés ici: https://github.com/elastic/elasticsearch-rails – spuder

Questions connexes