スキーマを持つコレクションをプログラムで作成する

トピック作成者:ks-solruserml-bot (2024/10/22 12:12 投稿)
4
OpenOpen

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

こんにちは。

ローカルに schema.xml ファイルがあります。このスキーマをそのまま使用して、新しいコレクションをプログラムで作成したいと考えています。内容はそのままで、余分なものは不要です。

コレクションを作成するためのAPIがあり、それは問題なく動作します。

しかし、スキーマに関して見つけられるAPIは、既存のスキーマを操作するために「add-field」や「add-field-type」などの長いコマンド列を提供する必要があります。これは良くありません。私はすでに正確な schema.xml ファイルを持っているのに、サーバーにそのファイルを使用したいとどうやって伝えればよいのでしょうか?

ConfigSets APIもスキーマを指定してコレクションで使用することを可能にするとしていますが、私が知らない様々な情報を指定する必要があるようです。私のユースケースは、特定のスキーマを持つコレクションを作成したいというアプリケーションであり、シャードの数やレプリカ、その他のインストール固有の情報(アプリケーションとしては知りえないもの)についてはSolrの管理者に任せたいというものです。

また、ConfigSetのスキーマを「ただ」設定する方法もないようです。

私は何を見落としているのでしょうか?

--
Mark Raynsford | https://www.io7m.com

返信投稿者:ks-solruserml-bot (2024/10/22 12:12 投稿)

アプリケーションがコレクションを作成する際にシャードとレプリカの数を指定した場合、それが何を要求したのかはわかるはずです。

完全な schema.xml をアップロードする簡単な方法があると便利な場合もあるという点には同意しますが、それを実装するのは簡単ではないかもしれません。一方で、schema.xml を一連の curl コマンドに変換するスクリプトを書くことは簡単です。

Dima

返信投稿者:ks-solruserml-bot (2024/10/22 12:13 投稿)

これは別の問題ですが、アプリケーション開発者の視点から言えば、そのような情報(シャードやレプリカの数など)を指定する必要があるとは思えません。それはSolrサーバーの管理者が決めるべきことのように思えます。

何か明らかな点を見落としていない限り、それはそれほど簡単なことではないように思えます。なぜなら、理論的には、最初のスキーマの内容を私は知らない可能性があるからです。というのも、私は既存のSolrサーバーに隣接してインストールされるアプリケーションであり、それらのデフォルトの設定が何であるかはわからないからです。

スキーマを完全にゼロにして、タイプやフィールドを追加し、自分が明示的に追加したタイプやフィールドだけが存在することを確実にするための明らかな方法はあるのでしょうか?

--
Mark Raynsford | https://www.io7m.com

返信投稿者:ks-solruserml-bot (2024/10/22 12:13 投稿)

ConfigSet APIはコンフィグセットを管理するためのものです。スタンドアロンモードでコンフィグセットを使用する方法もありますが、SolrCloudが推奨されています。

コンフィグセットには solrconfig.xmlmanaged-schema.xml(クラシックスキーマファクトリを使用している場合は schema.xml)、およびそれらの2つの設定ファイルで参照されるその他のファイルが含まれます。スキーマだけをアップロードすることはできず、solrconfig も必要です。

リンク

ZK(ZooKeeper)に保存されている各コンフィグセットには名前があり、その名前はコレクションを作成する際に使用されます。既存のコレクションは異なるコンフィグ名を使用するように変更でき、コレクションをリロードすると変更が有効になります。

別のスレッドでの質問に答えると、SolrCloudがSolrを実行するための推奨方法です。次のメジャーバージョンでは、Solrがクラウドモードでのみ動作する可能性があっても驚きません。Solrの一部の高度な機能はクラウドモードでのみ動作します。

冗長性やレプリカが必要ない単純なシングルノードでの非ミッションクリティカルな状況では、埋め込みZKを使ってSolrを実行することができます。私もこの方法で動作するSolrのインストールがあります。しかし、もし高可用性や複数のレプリカが必要なら、この方法は推奨されません。

ありがとう、
Shawn

返信投稿者:ks-solruserml-bot (2024/10/22 12:13 投稿)

ありがとうございます。私の理解では、アプリケーションは既存のConfigSetの名前を受け取り、そのConfigSetをダウンロードし、スキーマを自分のものに置き換えてから、新しいスキーマに基づいた新しいConfigSetを作成するということになります。そして、その新しいConfigSetを参照するコレクションを作成するという流れで合っていますか?

私たちのケースでは、一度作成されたスキーマは不変として扱います。もしスキーマを変更する必要がある場合は、変更されたスキーマで新しいコレクションを作成し、古いコレクションの内容を再インデックス化します。

理解しました。

--
Mark Raynsford | https://www.io7m.com

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

KandaSearch

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

投稿の削除

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