2010-05-16 5 views
6

Quelle est la meilleure façon de mettre à jour un index Lucene existant. Je ne dois pas simplement ajouter/supprimer des documents, plutôt mettre à jour les documents existants.mise à jour de l'index lucene

Répondre

11

Vous devrez ouvrir l'index sans écraser ainsi:

IndexWriter writer = new IndexWriter("MyIndexPath",analyzer, false); 

Le faux drapeau à la fin, il dit d'ouvrir en mode append.

L'auteur a une méthode updateDocument

writer.UpdateDocument(new Term("IDField",id), doc); 

le champ id doit avoir un identificateur de document unique tel que le nom de fichier ou de dossier, etc.

+2

Je pensais que cela n'a pas été possible. http://wiki.apache.org/lucene-java/LuceneFAQ#How_do_I_update_a_document_or_a_set_of_documents_that_are_already_indexed.3F – Neelesh

+1

@Neelesh étant donné l'ambiguïté dans les balises de question, et la mise en majuscule de 'UpdateDocument', je suppose que cette réponse est pour lucene.net. –

+1

Un document peut être mis à jour avec updateDocument (qui supprime et ajoute tout le document). http://lucene.apache.org/core/4_3_0/core/org/apache/lucene/index/IndexWriter.html – Falci