構成セットは、Search サービスにおけるコレクションのスキーマおよび Solr 設定を定義します。本トピックでは、デフォルトの構成セットをダウンロードし、スキーマをカスタマイズした後、独自の構成セットをアップロードする手順について説明します。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
HBase Shell がインストール済みであり、ご利用の HBase クラスターに対してホワイトリストが設定済みであること。詳細については、「HBase Shell を使用した Search サービスへのアクセス」をご参照ください。
デフォルト構成セットのダウンロード
Search サービスには、_indexer_default という名前の組み込み構成セットが用意されています。カスタマイズを始める際の出発点として、この構成セットをダウンロードしてください。
HBase Shell で以下のコマンドを実行します。
cd alisolr-7.3.8-bin/bin
./solr zk ls /configs # 既存の構成セット一覧を表示
./solr zk downconfig -d . -n _indexer_default # _indexer_default を現在のディレクトリにダウンロード./solr zk downconfig のパラメーターについて:
| パラメーター | 必須 | 説明 | 例 |
|---|---|---|---|
-d | はい | ダウンロードした構成セットを書き込むローカルディレクトリ | .(現在のディレクトリ) |
-n | はい | ZooKeeper 内からダウンロードする構成セットの名前 | _indexer_default |
ダウンロードが完了すると、現在のディレクトリ内に conf ディレクトリが作成され、その中に以下の 2 つのファイルが含まれます。
managed-schema— インデックスのフィールドおよびフィールドタイプを定義solrconfig.xml— Solr のリクエストハンドラおよびその他の設定を構成
スキーマにおけるフィールドの定義
インデックス用のフィールド定義を追加するため、managed-schema を開きます。
明示的なフィールドの定義
インデックス化したい各カラムに対応する <field> 要素を追加します。
<field name="name" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="age" type="pint" indexed="true" stored="true" docValues="true" multiValued="false" />主な属性について:
| 属性 | 説明 | 例の値 |
|---|---|---|
type | フィールドタイプ。pint は INT にマップされ、plong は LONG にマップされます。 | string、pint、plong |
indexed | true の場合、該当フィールドは検索可能になります。 | true、false |
stored | true の場合、元の値が保存され、クエリ結果に返されます。 | true、false |
docValues | true の場合、該当フィールドに対するソートおよびファセット機能が有効になります。 | true、false |
multiValued | true の場合、1 つのドキュメント内で複数の値を許容します。 | true、false |
柔軟なスキーマには dynamicField を使用(推奨)
データに多数のカラムが存在する場合、または事前にカラム名が固定されていない場合は、各フィールドを明示的に定義する代わりに、dynamicField を使用することを推奨します。dynamicField は、フィールド名の末尾文字列(サフィックス)に基づいてマッチングを行い、指定されたサフィックスで終わるすべてのフィールド名に対して、対応するタイプおよび属性を自動的に継承させます。
managed-schema ファイルには、あらかじめデフォルトの dynamicField 定義が含まれています。データを書き込む際は、これらのサフィックスと一致するフィールド名を使用してください。
name_sは、*_sと自動的にマッチし、文字列型フィールドとして扱われます。age_iは、*_iと自動的にマッチし、pint(INT)型フィールドとして扱われます。
このアプローチにより、スキーマの進化に伴う managed-schema の頻繁な編集を回避できます。
構成セットのアップロード
managed-schema の変更が完了したら、新しい名前で構成セットを ZooKeeper にアップロードします。コレクションごとに 1 つの構成セットを使用してください。
./solr zk upconfig -d conf/ -n myconf| パラメーター | 必須 | 説明 | 例 |
|---|---|---|---|
-d | はい | ローカル構成セットディレクトリへのパス | conf/ |
-n | はい | ZooKeeper 内で構成セットに割り当てる名前 | myconf |
アップロードが正常に行われたか確認するには、Solr Web コンソールを開き、構成セットの一覧に myconf が表示されていることを確認してください。

ベストプラクティス
可能な限り dynamicField を使用してください。
dynamicFieldのサフィックスを活用してフィールドを定義することで、managed-schemaの頻繁な変更を回避でき、スキーマ管理が簡素化されます。コレクションごとに 1 つの構成セットを使用してください。 複数のインデックス間で構成セットを共有しないでください。スキーマの変更は、その構成セットを利用するすべてのコレクションに影響を与えます。
_indexer_defaultをベースに開始してください。 構成セットをゼロから作成するのではなく、必ずデフォルト構成セットをダウンロード・修正してください。