2017-11-23 57 views
0

私はsolrを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」フォルダから「old_core」フォルダにサブフォルダ 'index'をコピーすると、エラーメッセージが表示されずに起動します。

これは、バージョン4.7のsolrのインデックスをバージョン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) 

ありがとう!
Mike

答えて

2

1回のアップグレードで多数のバージョンをアップグレードすることはできません。 Solr(Lucene)は、以前のバージョンのインデックス形式のみをサポートしているため、各バージョンを単独で実行する必要があります。

Solrにバンドルされているツールhelp you do this - the IndexUpgraderがあります。

a helpful script to automate migration from 4.x and onwardsもあります。

いつものように、必要に応じてインデックスのバックアップをとっておいてください。また、特定のフィールドタイプが使用できなくなったり、フィールドタイプが変更されたり(デフォルトで有効になっている可能性がある新しい機能が導入されている)ことに注意してください。

再インデックスできる場合は、これが優先アップグレードパスです。

+0

ありがとうございます!スクリプトを実行すると、次のエラーメッセージが表示されます。 'solr unexpected docvaluesフィールド '_version_'(expected = NUM​​ERIC)のNONEを入力します。正しいdocvalues型で再インデックスする.'私は何かを逃していますか? – Mike

+0

はい、docValuesを持つように定義されたフィールドのdocValuesがありません。通常、バージョン間のインデックス形式だけでなく、スキーマも移行する必要があります。 – MatsLindh

+0

ありがとうございました! – Mike