Comment indexer tous les documents dans Solr données
Je suis goting modifier certains types de champ dans le schéma, donc il semble qu'il faut ré-indexer tous les documents actuels Solr données d'index avec ce type de changement.
Question est sur la façon de "re-index" tous les docs?
Une solution que je peux penser à est de "requête" tous les docs par le biais de l'interface de recherche et de déverser un gros fichier en XML ou JSON, puis de le convertir à l'entrée de format XML pour Solr, et la charge de Solr pour rendre le schéma de changement.
Est-il une meilleure façon peut le faire plus efficacement? Merci pour votre suggestion.
OriginalL'auteur Yinan | 2011-05-29
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, le dumping, les résultats d'une requête ne peut pas vous donner les données d'origine si vous avez des champs qui sont indexés et ne sont pas stockées. En général, il est préférable de conserver une copie de l'entrée à SOLR dans un formulaire que vous pouvez facilement l'utiliser pour reconstruire les index à partir de zéro si vous en avez besoin. Dans ce cas, il suffit d'exécuter une requête de suppression par l'affichage de
<delete><query>*:*</query></delete>
puis<commit/>
et puis<optimize/>
. Après que votre index est vide et vous pouvez ajouter de nouveaux documents qui utilisent le nouveau schéma.Mais vous pourriez être en mesure de s'en tirer avec juste la course
<optimize/>
après le redémarrage de SOLR avec le nouveau fichier de schéma. Il serait bon d'avoir une sauvegarde où vous pouvez tester que cela fonctionne pour votre configuration.Il existe un outil appelé Luke qui peut être utilisé pour rechercher et d'exporter les index Lucene. Je n'ai jamais essayé moi-même, mais il pourrait être en mesure de vous aider à exporter vos données de sorte que vous pouvez réimporter.
OriginalL'auteur Michael Dillon
L'idée de dumping tous les résultats d'une requête pourrait vous donner des données incomplètes ou non valides car vous risquez de ne pas la surface de toutes les données au sein de votre index.
Alors que l'idée de garder une copie de votre index dans un formulaire dans lequel vous pouvez insérer de nouveau qu'il serait bien travailler dans une situation où les données ne change pas, il devient plus compliqué quand vous avez ajouté un nouveau champ pour le schéma. Dans une telle situation, vous aurez besoin de collecter toutes les données de la source, le format des données pour correspondre au nouveau schéma, puis l'insérer.
OriginalL'auteur Jim Clouse
Si le nombre de documents dans la Solr est grand et vous avez besoin de garder Solr serveur disponible pour l'interrogation, de l'indexation de travail peut être commencé à se re-ajouter/ré-indexer les documents dans l'arrière-plan.
Il est utile de présenter un nouveau champ pour garder la lastindexed horodatage pour chaque document, de sorte que dans le cas de l'indexation/ré-indexation des questions, il sera possible d'identifier d'attente pour la réindexation des documents.
Pour améliorer le temps de latence de l'interrogation, il est possible de jouer avec les configurations de paramètres pour garder les caches après chaque commit.
OriginalL'auteur Igor Babalich
Il y a un Script PHP qui fait exactement cela: aller le chercher et à le réinsérer tous vos Solr documents, de réindexation.
Pour optimiser, appel à partir de la ligne de commande:
OriginalL'auteur Daniel Cukier