スキーマファクトリーの設定
solrconfig.xml の <schemaFactory>
solrconfig.xml の <schemaFactory> は、システムが管理スキーマと schema.xml のどちらを使用するかを定義します。
<config>
<schemaFactory>
...
</schemaFactory>
</config>
スキーマ API の「読み取り」機能はすべてのスキーマタイプでサポートされていますが、スキーマの変更をプログラムで実行するためのサポートは、使用中の <schemaFactory/> に依存します。
スキーマファクトリー
ManagedIndexSchemaFactory
solrconfig.xml ファイルで <schemaFactory/> が明示的に宣言されていない場合、Solr は暗黙的に ManagedIndexSchemaFactory を使用します。これはデフォルトで "mutable" (編集可能) であり、スキーマ情報を managed-schema.xml ファイルに保持します。
スキーマ API を使用してスキーマを変更するには、管理スキーマを使用する必要があります。ただし、管理スキーマを使用しても、Solr をスキーマレスモード (または「スキーマ推測」モード) で使用しているという意味ではありません。
スキーマレスモードでは、まだ有効になっていない場合は管理スキーマを有効にする必要がありますが、完全なスキーマ推測には、スキーマレスモードセクションで説明されているように追加の設定が必要です。
以下は、Solr のデフォルトを反映した schemaFactory の例です。
<schemaFactory class="ManagedIndexSchemaFactory">
<bool name="mutable">true</bool>
<str name="managedSchemaResourceName">managed-schema.xml</str>
</schemaFactory>
デフォルトは、ManagedIndexSchemaFactory を明示的に設定し、以下のオプションのいずれかを変更することでオーバーライドできます。
mutable-
オプション
デフォルト:
trueスキーマデータへの変更が可能かどうかを制御します。スキーマ API で編集を許可するには、これを
trueに設定する必要があります。上記のデフォルト設定では、スキーマ API を使用してスキーマを自由に変更し、後で
mutableの値をfalseに変更してスキーマを「ロック」し、今後の変更を防ぐことができます。 managedSchemaResourceName-
オプション
デフォルト:
managed-schema.xmlスキーマファイルの名前。名前は
schema.xml以外であれば何でも構いません。schema.xmlという名前はClassicIndexSchemaFactory用に予約されているためです。
スキーマファクトリーの変更
schema.xmlからマネージドスキーマへの切り替え
ClassicIndexSchemaFactoryを使用している既存のSolrコレクションがあり、マネージドスキーマを使用するように変換したい場合は、solrconfig.xmlを変更してManagedIndexSchemaFactoryの使用を指定するだけで済みます。
Solrを再起動し、schema.xmlファイルが存在するが、managedSchemaResourceNameファイル(つまり「managed-schema.xml」)が存在しないことを検出すると、既存のschema.xmlファイルの名前がschema.xml.bakに変更され、内容がマネージドスキーマファイルに書き直されます。
結果のファイルを見ると、ページの先頭に次の記述があります。
<!-- Solr managed schema - automatically generated - DO NOT EDIT -->
これで、Schema APIを使用して変更を行い、schema.xml.bakを削除できるようになりました。
マネージドスキーマからschema.xmlへの切り替え
マネージドスキーマを有効にしてSolrを起動していて、手動でschema.xmlファイルを編集するように切り替えたい場合は、次の手順を実行する必要があります。
-
managed-schema.xmlファイルの名前をschema.xmlに変更します。 -
solrconfig.xmlを修正して、schemaFactoryクラスを置き換えます。-
ManagedIndexSchemaFactory定義が存在する場合は削除します。 -
上記のように
ClassicIndexSchemaFactory定義を追加します。
-
-
コアをリロードします。
SolrCloudを使用している場合は、ZooKeeperを介してファイルを変更する必要がある場合があります。bin/solrスクリプトは、ZooKeeperからファイルをダウンロードし、編集後にアップロードするための簡単な方法を提供します。詳細については、ZooKeeper操作のセクションを参照してください。
|
|