首页 > 解决方案 > Lucene Index 从版本 4.6 升级到 8.0.0

问题描述

我正在尝试将 Lucene 索引从 4.6 升级到 8.0.0。当我尝试使用以下方式升级工具时:

java -cp lucene-core.jar:lucene-backward-codecs.jar \
 org.apache.lucene.index.IndexUpgrader -delete-prior-commits  \
/scratch/***/workspaces/trunk/****/indexes/4.6/

脚本从4.6to到to运行良好5.5.5。但是当我试图从它升级到它时,它会抛出如下错误。5.5.56.6.66.6.67.7.27.7.28.0.0

Exception in thread "main" org.apache.lucene.index.IndexFormatTooOldException: Format version is not supported (resource BufferedChecksumIndexInput(MMapIndexInput(path="/scratch/**/workspaces/trunk/**/indexes/4.6/sd/segments_9"))): This index was initially created with Lucene 6.x while the current version is 8.0.0 and Lucene only supports reading the current and previous major versions.. This version of Lucene only supports indexes created with release 7.0 and later.
    at org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:318)
    at org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:289)
    at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:846)
    at org.apache.lucene.index.IndexUpgrader.upgrade(IndexUpgrader.java:167)
    at org.apache.lucene.index.IndexUpgrader.main(IndexUpgrader.java:78)

我们想从 升级4.68.0.0。直到7.7.2它升级没有任何问题,但是当我7.7.2在我的代码索引中使用 Lucene 版本时工作正常。但是 Lucene8.0.0不工作。

请帮我升级8.0.0

标签: javalucene

解决方案


  1. 如果我们要升级多个主要版本,我们必须重新索引。
  2. 一直不鼓励多次主要版本升级,并且从不保证能正常工作,但现在此类升级被明确拒绝。
  3. 当我们使用 Lucene 6 的 IndexUpgrader 时,Lucene 版本被写入索引。记录的版本被版本 7 的升级者保留。当索引随后被版本 8 读取时,它抱怨,因为原始索引不是由版本 7 或更高版本写入的。

推荐阅读