2014-01-07 93 views
2

我有一個使用Lucene的程序,每次在目錄(索引目錄)中創建索引。衆所周知,在每次執行時創建索引都是耗時的過程,我想在初始執行過程中重用已創建的索引?如何重用已使用Apache Lucene創建的索引?

它可能在Lucene中。 Lucene有這個功能嗎?

+0

有沒有關於'IndexSearcher'這是不適合您的應用程序? – Blrfl

+2

我猜你打開一個新的IndexWriter與不正確的OpenMode(你把它設置爲「創建」),並刪除你現有的索引?嘗試使用OpenMOode.APPEND或CREATE_OR_APPEND進行配置:http://lucene.apache.org/core/4_0_0/core/org/apache/lucene/index/IndexWriterConfig.OpenMode.html –

回答

0

這是完全可能的。假設indexDirPath是您的Lucene索引的位置,你可以使用下面的代碼:

Directory dir = FSDirectory.open(new File(indexDirPath)); 
IndexReader ir = DirectoryReader.open(dir); 

IndexSearcher searcher = new IndexSearcher(ir); 

這之後,應當使用在創建索引時使用的適當分析儀。