2017-11-23 11 views
0

방금 ​​솔라를 4.7에서 7.1로 업그레이드했습니다. 이전 폴더 이름 'old_core'('index', 'snapshot_metadata'및 'tlog'폴더가 들어 있음)가 데이터 폴더에 복사되었습니다. 새로운 solr UI를 통해 새 코어를 만들었습니다.4.7에서 7.1로 업그레이드 한 후 Solr 색인 문제가 발생했습니다.

solr을 시작할 때 UI에 다음과 같은 오류 메시지가 표시됩니다. old_core: org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: Error opening new searcher.

"new_core"하위 폴더 'index'를 "old_core"폴더에 복사하면 오류 메시지없이 시작된다는 것을 알았습니다.

solr 버전 4.7의 인덱스를 버전 7.1로 전송할 수 없다는 의미입니까? 해결 방법이 있습니까? 그것은 안전하거나 인덱스를 손상시킬 수 있습니까? 로그에서

오류 : 짧은
:

에 의해 발생 : org.apache.lucene.index.IndexFormatTooOldException : 형식 버전이 지원되지 않습니다 (자원 BufferedChecksumIndexInput (MMapIndexInput (경로 = "/ 데이터/SOLR/sst1_1/index/segments_5 ")))) : 1 (6에서 7 사이 여야 함). 이 버전의 Lucene은 릴리스 6.0 이상으로 작성된 색인 만 지원합니다.

전체

: 사전에 >

ERROR - 2017-11-23 10:05:57.182; org.apache.solr.core.CoreContainer; Error waiting for SolrCore to be created 
java.util.concurrent.ExecutionException: org.apache.solr.common.SolrException: Unable to create core [sst1_1] 
     at java.util.concurrent.FutureTask.report(FutureTask.java:122) 
     at java.util.concurrent.FutureTask.get(FutureTask.java:192) 
     at org.apache.solr.core.CoreContainer.lambda$load$14(CoreContainer.java:671) 
     at com.codahale.metrics.InstrumentedExecutorService$InstrumentedRunnable.run(InstrumentedExecutorService.java:176) 
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
     at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:188) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
     at java.lang.Thread.run(Thread.java:748) 
Caused by: org.apache.solr.common.SolrException: Unable to create core [sst1_1] 
     at org.apache.solr.core.CoreContainer.createFromDescriptor(CoreContainer.java:1045) 
     at org.apache.solr.core.CoreContainer.lambda$load$13(CoreContainer.java:642) 
     at com.codahale.metrics.InstrumentedExecutorService$InstrumentedCallable.call(InstrumentedExecutorService.java:197) 
     ... 5 more 
Caused by: org.apache.solr.common.SolrException: Error opening new searcher 
     at org.apache.solr.core.SolrCore.<init>(SolrCore.java:989) 
     at org.apache.solr.core.SolrCore.<init>(SolrCore.java:844) 
     at org.apache.solr.core.CoreContainer.createFromDescriptor(CoreContainer.java:1029) 
     ... 7 more 
Caused by: org.apache.solr.common.SolrException: Error opening new searcher 
     at org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:2076) 
     at org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:2196) 
     at org.apache.solr.core.SolrCore.initSearcher(SolrCore.java:1072) 
     at org.apache.solr.core.SolrCore.<init>(SolrCore.java:961) 
     ... 9 more 
Caused by: org.apache.lucene.index.IndexFormatTooOldException: Format version is not supported (resource BufferedChecksumIndexInput(MMapIndexInput(path="/data/solr/sst1_1/index/segments_5"))): 1 (needs to be between 6 and 7). This version of Lucene only supports indexes created with release 6.0 and later. 
     at org.apache.lucene.codecs.CodecUtil.checkHeaderNoMagic(CodecUtil.java:213) 
     at org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:305) 
     at org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:289) 
     at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:1076) 
     at org.apache.solr.update.SolrIndexWriter.<init>(SolrIndexWriter.java:119) 
     at org.apache.solr.update.SolrIndexWriter.create(SolrIndexWriter.java:94) 
     at org.apache.solr.update.DefaultSolrCoreState.createMainIndexWriter(DefaultSolrCoreState.java:257) 
     at org.apache.solr.update.DefaultSolrCoreState.getIndexWriter(DefaultSolrCoreState.java:131) 
     at org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:2037) 
     ... 12 more 
ERROR - 2017-11-23 10:05:59.235; org.apache.solr.update.SolrIndexWriter; SolrIndexWriter was not closed prior to finalize(), indicates a bug -- POSSIBLE RESOURCE LEAK!!! 
ERROR - 2017-11-23 10:05:59.236; org.apache.solr.update.SolrIndexWriter; Error closing IndexWriter 
java.lang.NullPointerException 
     at org.apache.lucene.index.IndexWriter.doFlush(IndexWriter.java:3583) 
     at org.apache.lucene.index.IndexWriter.flush(IndexWriter.java:3545) 
     at org.apache.lucene.index.IndexWriter.shutdown(IndexWriter.java:1272) 
     at org.apache.lucene.index.IndexWriter.close(IndexWriter.java:1317) 
     at org.apache.solr.update.SolrIndexWriter.close(SolrIndexWriter.java:280) 
     at org.apache.solr.update.SolrIndexWriter.finalize(SolrIndexWriter.java:336) 
     at java.lang.System$2.invokeFinalize(System.java:1270) 
     at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:98) 
     at java.lang.ref.Finalizer.access$100(Finalizer.java:34) 
     at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:210) 

감사합니다!
마이크

답변

2

단일 업그레이드에서 여러 버전을 업그레이드 할 수 없습니다. Solr (Lucene)은 이전 버전의 인덱스 형식 만 지원하므로 각 버전을 단독으로 수행해야 할 수도 있습니다.

Solr에 번들로 제공되는 도구가 help you do this - the IndexUpgrader입니다.

a helpful script to automate migration from 4.x and onwards도 있습니다.

항상 그렇듯이 필요한 경우 색인의 백업을 유지하십시오. 또한 특정 필드 유형을 더 이상 사용할 수 없거나 필드 유형이 변경되었음을 기억하십시오 (기본적으로 활성화 될 수있는 새로운 기능이 도입되었습니다).

다시 색인 할 수있는 경우 기본 업그레이드 경로입니다.

+0

감사합니다. 그러나 이제 스크립트를 실행 한 후에 다음과 같은 오류 메시지가 나타납니다 :'solr unexpected docvalues ​​field '_version_'(expected = NUMERIC)에 대해 NONE을 입력하십시오. 올바른 docvalues ​​유형으로 색인을 다시 만듭니다 .' 나는 무엇인가 놓치고 있습니까? – Mike

+0

예, docValues를 갖도록 정의 된 필드에 대해 docValues가 누락되었습니다. 일반적으로 버전 간 인덱스 형식 이상의 변경 사항이 있으므로 스키마도 마이그레이션해야합니다. – MatsLindh

+0

고마워요 !!! – Mike