2014-01-07 48 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); 

这之后,应当使用在创建索引时使用的适当分析仪。