DSE Search構成ファイル(solrconfig.xml)
solrconfig.xmlは、プライマリのDSE Search構成ファイルです。
- DataStax Enterprise構成については、「datastax_enterprise/config/configDseYaml.dita」を参照してください。
- ノードとクラスターの構成については、「cassandra.yaml」を参照してください。
solrconfig.xmlファイルを含め、カスタム・リソースまたは自動作成リソースを使用できます。solrconfig.xmlリソースは、solr_admin.solr_resourcesデータベース・テーブルに保持されます。
solrconfig.xmlファイルを変更したら、Solrコアを再度読み込みます。変更内容は、コアを再度読み込むノードにのみ適用されます。
パラメーター
DSE Searchを調整するには、以下のパラメーターを変更できます。詳細については、『Apache Solrリファレンス・ガイド』を参照してください。
- autoSoftCommit
- ライブ・インデックス作成の場合、autoSoftCommitの時間を100msにしてください。
「インデックス作成スループットの向上」を参照してください。<autoSoftCommit> <maxTime>100</maxTime> </autoSoftCommit>
- directoryFactory
- サーチ・インデックスに使用するfactoryディレクトリー。暗号化は、コアごとに有効にされます。コアごとの暗号化を有効にするには、Factoryディレクトリーのクラスを
EncryptedFSDirectoryFactory
に変更します。
- dseTypeMappingVersion
- Solr型マッピング・バージョンは、Solr型をCassandra ThriftまたはCassandra型にマッピングする方法を定義します。Solr型マッパーの変更は、めったに行われず、推奨されません。ただし、たとえばSolr LongFieldなどのSolr型をTrieLongFieldに変換するような特定の状況では、forceオプションを使用してdseTypeMappingVersionを構成します。「Solr型の変更」および「Solr型マッピング・バージョンの構成」を参照してください。このオプションは、ユーザーが専門家で、変換に関与する型のCassandra内部検証クラスに互換性があることを確認した場合にのみ使用してください。型を変更するには、以下のようにforce="true"を使用します。
型マッピングを変更したら、インデックスを再作成してSolrコアを再度読み込む必要があります。<dseTypeMappingVersion force = "true">1</dseTypeMappingVersion>
- dseUpdateRequestProcessorChain
- カスタムURPを構成してSolr UpdateRequestProcessorを拡張します。「フィールド入力/出力トランスフォーマーの例」を参照してください。
- enableLazyFieldLoading
- デフォルト値のtrueは変更しないでください。
Solrの以前のバージョンに存在していたSolrバクSOLR-8858ではこのフィールドの変更が制限されていました。<enableLazyFieldLoading>true</enableLazyFieldLoading>
- fieldInputTransformer
- フィールド入力トランスフォーマーAPIは、Solrの入力/出力トランスフォーマー・サポートに対するオプションです。
- fieldOutputTransformer
- フィールド出力トランスフォーマーAPIは、Solrの入力/出力トランスフォーマー・サポートに対するオプションです。「フィールド入力/出力トランスフォーマーの例」および開発者ブログの投稿「an Introduction to DSE Field Transformers」を参照してください。
- filtercache
- DSE Search構成可能グローバル・フィルター・キャッシュは、Solrコアのフィルター・キャッシュ・メモリー使用量を確実に抑制します。この実装は、セグメントあたりのフィルター・キャッシュ使用量の限界を定義するデフォルトのSolr実装と対比します。SolrFilterCacheの限界は、コア単位で構成されている高い水準に到達するとキャッシュ・エントリーを削除することによって機能し、構成済みの低い水準に到達すると停止します。以下のように、filterCache要素のクラス属性を
solr.search.SolrFilterCache
に設定し、キャッシュ削除の上限および下限の水準を定義します。<filterCache class="solr.search.SolrFilterCache" lowWaterMarkMB="128" highWaterMarkMB="256" />
- indexConfig
- RAMバッファのサイズを変更してソフト・コミット時間を延長し、インデックス再作成およびインデックス構築のパフォーマンスを調整することができます。「インデックスの再作成の構成」を参照してください。
- lib
- DataStax Enterpriseのライブラリ・ファイルの場所は、オープン・ソースSolrの場所と同じではありません。solrconfig.xmlファイルの例では、相対パスがサポートされていることを示していますが、DataStax Enterpriseでは、<lib>プロパティに対して設定された相対パス値をサポートしていません。DSE Searchは、<lib>プロパティによって定義されたディレクトリーにあるファイルを見つけられません。回避策として、カスタム・コードまたはSolr contribモジュールをSolrライブラリー・ディレクトリーに配置します。「Solrライブラリ・パスの構成」を参照してください。
- maxBooleanClauses
- ブーリアン・クエリーでの句の最大数を定義します。このパラメーターを変更したら、変更内容を反映するためにノードを再起動してください。Solrコアの再読み込みを実行してもこの変更には効果がありません。この値を超過すると、例外がスローされます。
- mergeScheduler
- デフォルトのmergeScheduler設定は、通常サイズのサーバーでのDSE Searchニア・リアルタイム(NRT)のインデックス作成実稼働環境には適していません。DataStaxでは出発点としてこれらの設定を推奨していますが、以下のように、ご利用の環境に合わせて調整してください。
maxThreadCount
= CPUコア数を2で割った数。maxMergeCount
=maxThreadCount
* 2
<indexConfig> ... <mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler"> <int name="maxThreadCount">12</int> <int name="maxMergeCount">24</int> </mergeScheduler> ...
- queryExecutorThreads
- クエリー・エグゼキューター・スレッド・パラメーターをsolrconfig.xmlファイルに設定して、フィルター・クエリー、通常クエリー、およびドック値ファセットのマルチスレッディングを有効にできます。
「マルチスレッド・クエリーの構成」を参照してください。<queryExecutorThreads>4</queryExecutorThreads>
- queryResponseWriter
- パフォーマンスを向上させるため、行の大量取得を並列処理するようにDSE Searchを構成できます。
「Cassandraの大規模行読み取りの並列処理」を参照してください。<queryResponseWriter name="javabin" class="solr.BinaryResponseWriter"> <str name="resolverFactory">com.datastax.bdp.search.solr.response.ParallelRowResolver$Factory</str> </queryResponseWriter>
- ramBufferSizeMB
- デフォルト値は512 MBです。
- パフォーマンスを調整するには、「インデックスの再作成の構成」を参照してください。
- ライブのインデックス作成を構成するには、RAMバッファ・サイズを2000に増やします。
「インデックス作成スループットの向上」を参照してください。<ramBufferSizeMB>2000</ramBufferSizeMB>
- requestHandler
- DSE SearchでのCQL Solrクエリーには、正しい検索ハンドラーが必要です。
自動的にリソースを生成している場合、solrconfig.xmlファイルにはすでに、DSE SearchでCQL Solrクエリーを実行するための要求ハンドラーが含まれています。カスタム・リソースを使用してCQL Solrクエリーを実行するために、CqlSearchHandlerハンドラーが自動的に挿入されます。
<requestHandler class="com.datastax.bdp.search.solr.handler.component.CqlSearchHandler" name="solr_query" />
検索ハンドラーの基本的な構成の推奨事項と検索コンポーネントの追加方法を示す例については、「追加検索コンポーネントの構成」を参照してください。
この例では、データ・インポート・ハンドラーを構成するために、data-config.xmlの場所とデータ・ソース接続情報を含む要求ハンドラー要素を追加できます。
HTTP APIとのみ使用する場合は、solrconfig.xmlファイルでデフォルトの行数を定義できます。<requestHandler name="search" class="solr.SearchHandler" default="true"> <lst name="defaults"> <int name="rows">10</int> </lst> </requestHandler>
- rt
ライブ・インデックス作成(RT)を有効にするには、
<rt>true</rt>
を<indexConfig>
属性に追加し、オプションを構成します。
「インデックス作成スループットの向上」を参照してください。<indexConfig> <rt>true</rt> ... <ramBufferSizeMB>10</ramBufferSizeMB> ... <autoSoftCommit> <maxTime>100</maxTime> </autoSoftCommit> <rtOffheapPostings>true</rtOffheapPostings> ... </indexConfig>
- updateHandler
- TTLは、ドキュメント単位またはフィールド単位で構成できます。「DSE Searchカラムの期限切れ」を参照してください。