2010-05-16 15 views
6

¿Cuál es la mejor forma de actualizar un índice Lucene existente? No solo tengo que agregar/eliminar documentos de él, sino actualizar los documentos existentes.actualización del índice lucene

Respuesta

11

Tendrá que abrir el índice sin sobrescribir así:

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

La bandera falsa al final dice que para abrir en modalidad de apertura.

El escritor tiene un método updateDocument

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

el campo id debe ser algún identificador único de documento como nombre de archivo o número de expediente, etc.

+2

pensé que esto no era posible. 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 dada la ambigüedad en las etiquetas de pregunta y el uso de mayúsculas en 'UpdateDocument', sospecho que esta respuesta es para lucene.net. –

+1

Un documento se puede actualizar con updateDocument (que simplemente elimina y luego agrega todo el documento). http://lucene.apache.org/core/4_3_0/core/org/apache/lucene/index/IndexWriter.html – Falci

Cuestiones relacionadas