Solr 8.11 から Solr 9.4 へのアップグレード

トピック作成者:ks-solruserml-bot (2024/09/11 21:57 投稿)
2
OpenOpen

(The bot translated the original post https://lists.apache.org/thread/kqq4f0kkjchg6x5d0ob58qsong2p15ry into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)

こんにちは皆さん、

Solr 8.11 から 9.4 へのコアの移行に問題があります。
以下の変更内容を読みました:
https://github.com/apache/solr/blob/main/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-9.adoc
基本的には以下の作業を行いました:

  • solrconfig.xml: 間違ったパスを指す タグを削除し、FastLRUCache を CaffeineCache に変更し、luceneversion を 9.8.0 に変更
  • schema.xml: の class 属性を可能な限り name 属性に置き換え、 についても同様

他に変更が必要なものは見当たらないのですが、コアの読み込みを試みると、Solr のログに以下のエラーが表示されます:

2023-12-28 11:03:24.875 INFO (coreLoadExecutor-11-thread-1) [ x:COSBIBioIndexTest] o.a.s.s.IndexSchema Schema name=ncbi
2023-12-28 11:03:24.893 ERROR (coreContainerWorkExecutor-2-thread-1) [] o.a.s.c.CoreContainer Error waiting for SolrCore to be loaded on startup => java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: org/apache/lucene/analysis/util/TokenizerFactory
at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: org/apache/lucene/analysis/util/TokenizerFactory
at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:?]
at java.util.concurrent.FutureTask.get(FutureTask.java:191) ~[?:?]
at org.apache.solr.core.CoreContainer.lambda$loadInternal$13(CoreContainer.java:1072) ~[?:?]
at com.codahale.metrics.InstrumentedExecutorService$InstrumentedRunnable.run(InstrumentedExecutorService.java:212) ~[metrics-core-4.2.20.jar:4.2.20]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:294) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
at java.lang.Thread.run(Thread.java:829) [?:?]
Caused by: java.lang.NoClassDefFoundError: org/apache/lucene/analysis/util/TokenizerFactory

非常に基本的なクラスが見つからないようです。<lib> に何か追加する必要がありますか?
新しいコアを作成してみたところ、solrconfig.xml に <lib> エントリがなくても正しく起動しました。

助けていただけると幸いです!

Danilo Tomasoni

返信投稿者:ks-solruserml-bot (2024/09/11 21:57 投稿)

こんにちは、Danilo。

// 推測 ON

おそらく、古い Lucene バージョンに基づいてカスタムアナライザーのクラスをビルドしているため、パッケージ名に注意が必要です。
例えば、以前は こちら にあった TokenizerFactory クラスが、9.4 では こちら に移動しています。
最近の Lucene バージョンに合わせてカスタムコードを再ビルドする必要があるようです。
Lucene は Solr に組み込まれたコアライブラリであり、<lib> ディレクトリを介して判断されません。
参考までに、Solr で二つの Lucene バージョンを同時に使用するのは不可能だと思います。

--
よろしくお願いします、
Mikhail Khludnev

返信投稿者:ks-solruserml-bot (2024/09/11 21:57 投稿)

ありがとうございます、Mikhail!

あなたの推測がまさに的中していました。古いバージョンの miasmath プラグインを使用していたのですが、実際には使用していなかったので、それを削除したところ、コアが正常に読み込まれるようになりました!

再度、感謝します

トピックへ返信するには、ログインが必要です。

KandaSearch

Copyright © 2006-2024 RONDHUIT Co, Ltd. All Rights Reserved.

投稿の削除

この投稿を削除します。よろしいですか?