自動生成の検索インデックスの設定の変更

自動生成の検索インデックスのデフォルト設定をdsetoolを使用してカスタマイズします。

dsetoolを使用すると、YAML形式のファイルで以下のオプションを指定して、自動生成される検索インデックスのデフォルト設定をカスタマイズできます。
auto_soft_commit_max_time:ms
最大自動ソフト・コミット時間(ミリ秒)。
default_query_field:field
クエリーでフィールドが指定されていないときに使用するクエリー・フィールド。
distributed=( true | false )
ローカル・データ・センター内のすべてのノードに操作を配布して適用するかどうかを指定します。Falseを指定すると、操作は送信先のノードのみに適用されます。Falseはrecovery=trueの場合にのみ機能します。

デフォルト:true

警告: 再作成したインデックスをデータ・センター全体に配布すると、そのデータ・センターのパフォーマンスが大きく低下します。
enable_string_copy_fields:( true | false )
トークン化されたテキストとトークン化されていないテキストをどちらも使用できるように、キーでないテキスト・フィールドに対して、格納されない文字列コピー・フィールドを生成するかどうかを指定します。

デフォルト:false

exclude_columns: col1, col2, col3, ...
除外するカラムのコンマ区切り(CSV)リスト。
generate_DocValues_for_fields:( * | field1, field2, ...)
生成された検索インデックス・スキーマでDocValuesを自動的に構成するためのフィールド。可能なフィールドをすべて追加するには、'*'を指定します。
generate_DocValues_for_fields: '*' 
または、フィールドのコンマ区切りリストを指定します。例を以下に示します。
generate_DocValues_for_fields: uuidfield, bigintfield

SOLR-7264により、Solrスキーマのブーリアン・フィールドでdocValuesをtrueに設定することはできません。ブーリアンdocValuesの回避策として、TrieIntFieldで0および1を使用します。

generateResources=( true | false )
既存のCQLテーブル・メタデータに基づき、検索インデックス・リソースを自動的に生成するかどうかを指定します。schema=およびsolrconfig=とともに使用することはできません。
有効な値:
  • true - リソースが存在しない場合、検索インデックス・スキーマと構成リソースを自動的に生成します。リソースが存在する場合、
  • false - デフォルト。検索インデックス・リソースは自動的に生成されません。
include_columns=col1, col2, col3, ...
含めるカラムのコンマ区切り(CSV)リスト。空の場合は、すべてのカラムが含まれます。
index_merge_factor:segments
1つのセグメントにマージする前に作成できる同等サイズのセグメントの数。
index_ram_buffer_size=MB
インデックスRAMバッファー・サイズ(MB)
lenient=( true | false )
サポートされていない型のカラムが検出されても、エラーで終了せず、そのカラムを無視して引き続きリソースを生成します。デフォルト:false
resource_generation_profiles
インデックスのサイズを最小化するには、リソースの生成時に適用するプロファイルのCSVリストを指定します。
表 1. リソース生成プロファイル
プロファイル名 説明
spaceSavingAll spaceSavingNoTextfield、spaceSavingNoJoin、spaceSavingSlowTriePrecisionのすべてのオプションを適用します。
spaceSavingNoTextfield TextFields以外。代わりに、StrFieldを使用します。
spaceSavingNoJoin 非表示のプライマリ・キー・フィールドのインデックスを作成しません。コア全体での結合を防ぎます。
spaceSavingSlowTriePrecision トライ・フィールドprecisionStepを「0」に設定すると、領域を大幅に節約できますがクエリーの速度は低下します。
注: spaceSavingsプロファイルを使用すると、DocValuesの自動生成が無効になります。
例を次に示します。
resource_generation_profiles: spaceSavingNoTextfield, spaceSavingSlowTriePrecision
rt=true
インデックス作成のスループットを高めるためにライブ・インデックス作成を有効にするかどうかを指定します。クラスターごとに1つの検索インデックスのみでライブ・インデックス作成を有効にします。
rt=true

CQLインデックス管理コマンドの例

例を次に示します。
CREATE SEARCH INDEX CONFIG ON wiki.solr SET defaultQueryField='last_name';
検索インデックスの管理について」を参照してください。

dsetoolの使用

YAML形式のファイルを使用して検索インデックス構成をカスタマイズする

構成およびスキーマ・ファイルをカスタマイズするには、以下のオプションを含むconfig.yamlファイルを作成します。
default_query_field: name
auto_soft_commit_max_time: 1000
generate_DocValues_for_fields: '*'
enable_string_copy_fields: false
dsetoolコマンドを使用して、これらのオプションで検索インデックスを生成し、構成およびスキーマの生成をカスタマイズします。coreOptionsを使用してconfig.yamlファイルを指定します。
dsetool create_core demo.health_data coreOptions=config.yaml

インラインでオプションを使用して検索インデックスをカスタマイズする

dsetoolコマンドを使用して、検索インデックスを生成し、スキーマの生成をカスタマイズします。coreOptionsを使用してライブ・インデックス作成(RTとも呼ばれる)をオンにします。
dsetool create_core udt_ks.users generateResources=true reindex=true coreOptions=rt.yaml

dsetoolを使用してコア・リソースを読み取ることで、DSE Searchがsolrconfigとスキーマを作成したことを確認できます。

新しい検索インデックスの暗号化を有効にする

coreOptionsInlineによりdirectoryFactoryのクラスをsolr.EncryptedFSDirectoryFactoryに指定します。
dsetool create_core keyspace_name.table_name generateResources=true coreOptionsInline="directory_factory_class:solr.EncryptedFSDirectoryFactory"