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 –