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