如何阅读Lucene 4.10的Lucene 3.2指数?

时间:2014-11-10 18:15:49

标签: lucene lucene.net

获取Lucene 4.10阅读3.2版本索引 升级到4.10仍然需要读取3.2索引。根据需要部署jre 7。在现有代码库中进行了所有更改,这些更改都变得错误。在进行重新索引之前仍需要阅读3.2索引。如何通过Lucene 4.10读取现有的3.2索引(如果代码中有任何更改)

2 个答案:

答案 0 :(得分:1)

您可以使用IndexUpgrader,例如:

IndexUpgrader upgrader = new IndexUpgrader(myIndexDirectory, Version.LUCENE_4_10_0);
upgrader.upgrade();

或从命令行运行它:

java -cp lucene-core.jar org.apache.lucene.index.IndexUpgrader myIndexDirectory

答案 1 :(得分:0)

您可以设置用于解码IndexWriterConfig中索引的编解码器。 Lucene3xCodec将是此处使用的编解码器:

IndexWriterConfig config = new IndexWriterConfig(Version.LATEST, analyzer);
config.setCodec(new Lucene3xCodec());
IndexWriter writer = new IndexWriter(directory, config);
IndexSearcher searcher = new IndexSearcher(new DirectoryReader.open(writer));

请记住,此编解码器严格只读。任何添加,删除或更新文档的尝试都将导致UnsupportedOperationException被抛出。如果您希望支持写入索引,则必须升级索引(see my original answer)。