DSE Search構成ファイル(solrconfig.xml)

solrconfig.xmlは、プライマリのDSE Search構成ファイルです。

solrconfig.xmlリソース・ファイルは、DSE Searchで使用するためにSolrを構成するためのプライマリ構成ファイルです。

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に変更します。
DataStaxではデフォルト設定の使用を推奨しますが、その他のプロパティで暗号化を調整することができます。
dseTypeMappingVersion
Solr型マッピング・バージョンは、Solr型をCassandra ThriftまたはCassandra型にマッピングする方法を定義します。Solr型マッパーの変更は、めったに行われず、推奨されません。ただし、たとえばSolr LongFieldなどのSolr型をTrieLongFieldに変換するような特定の状況では、forceオプションを使用してdseTypeMappingVersionを構成します。「Solr型の変更」および「Solr型マッピング・バージョンの構成」を参照してください。このオプションは、ユーザーが専門家で、変換に関与する型のCassandra内部検証クラスに互換性があることを確認した場合にのみ使用してください。型を変更するには、以下のようにforce="true"を使用します。
<dseTypeMappingVersion force = "true">1</dseTypeMappingVersion>
型マッピングを変更したら、インデックスを再作成してSolrコアを再度読み込む必要があります。
dseUpdateRequestProcessorChain
カスタムURPを構成してSolr UpdateRequestProcessorを拡張します。「フィールド入力/出力トランスフォーマーの例」を参照してください。
enableLazyFieldLoading
デフォルト値のtrueは変更しないでください。
<enableLazyFieldLoading>true</enableLazyFieldLoading>
Solrの以前のバージョンに存在していたSolrバクSOLR-8858ではこのフィールドの変更が制限されていました。
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
たとえば、CPUコアが24の場合は以下のようになります。
<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を構成できます。
<queryResponseWriter name="javabin" class="solr.BinaryResponseWriter">
<str name="resolverFactory">com.datastax.bdp.search.solr.response.ParallelRowResolver$Factory</str>
</queryResponseWriter>
Cassandraの大規模行読み取りの並列処理」を参照してください。
ramBufferSizeMB
デフォルト値は512 MBです。
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カラムの期限切れ」を参照してください。