2010-05-16 178 views
6

什麼是更新現有Lucene索引的最佳方式。我不需要添加/刪除文件,而是更新現有文件。更新lucene索引

回答

11

你將不得不打開索引,而不從而覆蓋:

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

末虛假標誌告訴則將在追加模式打開。

作傢俱有UpdateDocument方法

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

id字段應該有的唯一文件標識符,如文件名或文件編號等

+2

我認爲,這是不可能的。 http://wiki.apache.org/lucene-java/LuceneFAQ#How_do_I_update_a_document_or_a_set_of_documents_that_are_already_indexed.3F – Neelesh 2012-05-10 11:38:43

+1

@Neelesh給出了問題標籤中的含糊以及'UpdateDocument'的大小寫,我懷疑這個答案是針對lucene.net的。 – 2012-07-26 20:24:06

+1

可以使用updateDocument更新文檔(只刪除並添加整個文檔)。 http://lucene.apache.org/core/4_3_0/core/org/apache/lucene/index/IndexWriter.html – Falci 2013-05-24 18:05:22