2
我有一個使用Lucene的程序,每次在目錄(索引目錄)中創建索引。衆所周知,在每次執行時創建索引都是耗時的過程,我想在初始執行過程中重用已創建的索引?如何重用已使用Apache Lucene創建的索引?
它可能在Lucene中。 Lucene有這個功能嗎?
我有一個使用Lucene的程序,每次在目錄(索引目錄)中創建索引。衆所周知,在每次執行時創建索引都是耗時的過程,我想在初始執行過程中重用已創建的索引?如何重用已使用Apache Lucene創建的索引?
它可能在Lucene中。 Lucene有這個功能嗎?
這是完全可能的。假設indexDirPath
是您的Lucene索引的位置,你可以使用下面的代碼:
Directory dir = FSDirectory.open(new File(indexDirPath));
IndexReader ir = DirectoryReader.open(dir);
IndexSearcher searcher = new IndexSearcher(ir);
這之後,應當使用在創建索引時使用的適當分析儀。
有沒有關於'IndexSearcher'這是不適合您的應用程序? – Blrfl
我猜你打開一個新的IndexWriter與不正確的OpenMode(你把它設置爲「創建」),並刪除你現有的索引?嘗試使用OpenMOode.APPEND或CREATE_OR_APPEND進行配置:http://lucene.apache.org/core/4_0_0/core/org/apache/lucene/index/IndexWriterConfig.OpenMode.html –