Upgrading Solr index from 6 to 8

倖福魔咒の 提交于 2021-01-07 01:14:30

问题


I have a core which was created years ago, running correctly from a Solr 6.x.

I've upgraded Solr to 7.7.3. I've launched the IndexUpgrade script:

/opt/solr/server/solr-webapp/webapp/WEB-INF/lib$ sudo java -cp lucene-core-7.7.3.jar:lucene-backward-codecs-7.7.3.jar org.apache.lucene.index.IndexUpgrader /var/solr/data/hms/data/index/

It silently run, so my assumption is that it did what it had to do correctly.

Then I've upgraded to Solr 8.7.0, and launched the script:

/opt/solr/server/solr-webapp/webapp/WEB-INF/lib$ sudo java -cp lucene-core-8.7.0.jar:lucene-backward-codecs-8.7.0.jar org.apache.lucene.index.IndexUpgrader /var/solr/data/hms/data/index/

This last code exits with this error:

Exception in thread "main" org.apache.lucene.index.IndexFormatTooOldException: Format version is not supported (resource BufferedChecksumIndexInput(MMapIndexInput(path="/var/solr/data/hms/data/index/segments_asky"))): This index was initially created with Lucene 6.x while the current version is 8.7.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:322)
    at org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:291)
    at org.apache.lucene.index.SegmentInfos$1.doBody(SegmentInfos.java:461)
    at org.apache.lucene.index.SegmentInfos$1.doBody(SegmentInfos.java:458)
    at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:720)
    at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:672)
    at org.apache.lucene.index.SegmentInfos.readLatestCommit(SegmentInfos.java:463)
    at org.apache.lucene.index.DirectoryReader.listCommits(DirectoryReader.java:260)
    at org.apache.lucene.index.IndexUpgrader.upgrade(IndexUpgrader.java:158)
    at org.apache.lucene.index.IndexUpgrader.main(IndexUpgrader.java:78)
    Suppressed: org.apache.lucene.index.CorruptIndexException: checksum passed (58082b0a). possibly transient resource issue, or a Lucene or JVM bug (resource=BufferedChecksumIndexInput(MMapIndexInput(path="/var/solr/data/hms/data/index/segments_asky")))
        at org.apache.lucene.codecs.CodecUtil.checkFooter(CodecUtil.java:466)
        at org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:434)
        ... 9 more

Why is that? Am I not doing things correctly, i.e. first upgrade the index from 6 to 7 and then from 7 to 8? How can I get my index working with Solr 8?


回答1:


I've recreated the core and the index, as Solr doesn't seem to deal well with indexes created more than one major version in the past.



来源:https://stackoverflow.com/questions/65493523/upgrading-solr-index-from-6-to-8

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!