SolrJのCoreAdminRequest.createCoreで新しいコアを作成できない場合

トピック作成者:ks-solruserml-bot (2024/06/20 15:35 投稿)
1
CloseClose

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

こんにちは、

SolrJのCoreAdminRequest.createCoreを使用して新しいコアを作成しようとしています。

アイデアは、次のようにしてconfigファイルとして
"/opt/solr/server/solr/configsets/jcg_example_configs/solrconfig.xml"、
スキーマファイルとして
"/opt/solr/server/solr/configsets/jcg_example_configs/managed-schema"を使用することです(または後でコンテナ起動時にステージングするものを使用します)。

以下のように呼び出します:

SolrClient client = new HttpSolrClient.Builder("http://localhost:8983/solr").build();
CoreAdminResponse resp = CoreAdminRequest.createCore("xyz", "xyz", client,
    "/opt/solr/server/solr/configsets/jcg_example_configs/solrconfig.xml",
    "/opt/solr/server/solr/configsets/jcg_example_configs/managed-schema");

docker composeでSOLR_OPTS=-Dsolr.allow.unsafe.resourceloading=trueを設定して、solrconfig.xmlをロードするようにSolrを説得しましたが、上記の呼び出しは次のエラーを生じます:

Unable to create core [xyz] Caused by: Can't find resource 'lang/contractions_it.txt' in classpath or '/var/solr/data/xyz' - /opt/solr/server/solr/configsets/jcg_example_configs has lang/contractions_it.txt - but that's obviously not in the classpath.

何かアイデアはありますか?

よろしくお願いします。
Armin

返信投稿者:ks-solruserml-bot (2024/06/20 15:35 投稿)

CoreAdminは新しいコアのディレクトリやファイルを作成することができません。これらは作成する前にすでに存在している必要があります。もし自分で事前にファイルシステムに触れずにSolrがコアを作成する場合は、SolrCloudモードで実行する必要があります。その場合、コレクションを作成し、CoreAdminを使用するのではなくなります。Standaloneモード向けにConfigSets機能があり、必要なことを行うかもしれませんが、私は実際には使用したことがなく、SolrJにそのための便利なメソッドがあるとは思いません。

Solrのホームディレクトリに、"xyz"ディレクトリを作成し、そのディレクトリ内に"conf"ディレクトリを作成してください。そして、"conf"ディレクトリにsolrconfig.xmlやmanaged-schema、およびこれらのファイルで参照される任意の設定ファイルを配置してください。それらのすべてのファイルの所有権を、Solrプロセスを実行しているユーザーに変更してください。

その後、createCoreメソッドを最後の二つの引数なしで実行してください。Solrは"conf"ディレクトリ内の設定を見つけ、データディレクトリを作成し、"core.properties"ファイルを作成して、Solrが再起動するときにコアが自動的に読み込まれるようにします。

もしかしたら「でも、bin/solrでできるじゃないですか!」と思われるかもしれませんが、それはbin/solrがCoreAdminを呼び出す前にコアディレクトリを作成し、設定をコピーするからです。

ありがとう、
Shawn

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

KandaSearch

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

投稿の削除

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