更新ハンドラーおよびautoSoftCommitの構成
更新ハンドラーを構成するための手順。
デフォルトの高パフォーマンス更新ハンドラーのフラグを設定し、Solrのニア・リアルタイム機能を使用するようにsolrconfig.xmlを構成します。
<!-- The default high-performance update handler -->
<updateHandler class="solr.DirectUpdateHandler2">
. . .
<autoSoftCommit>
<maxTime>1000</maxTime>
</autoSoftCommit>
</updateHandler>
autoCommit要素は、ディスクを検索しキャッシュをフラッシュするハード・コミットを防ぐために除外されています。ソフト・コミットは、コミットされていないドキュメントを内部メモリーに強制的に保存します。データがコミットされるとすぐに使用可能になります。
ライブ・インデックス作成の場合のみ、autoSoftCommit/maxTimeは1000msで飽和し、それ以上の値は無効となり最大時間は1000msに制限されます。<rt>true</rt>がsolrconfig.xml内にあるとライブ・インデックス作成がオンになります。DataStaxでは、ライブ・インデックス作成を使用する場合はautoSoftCommit/maxTimeを100msにするように推奨しています。
autoSoftCommit要素は、maxTime更新ハンドラー属性を使用します。更新ハンドラー属性がニア・リアルタイム・パフォーマンスを有効にして、データのソフト・コミットを自動的にトリガーするので、ディスクとのデータの同期化を確認する必要はありません。以下の表で、両方の更新ハンドラー・オプションについて説明します。
属性 | デフォルト | 説明 |
---|---|---|
maxDocs | デフォルトなし | 新しいソフト・コミットが自動的にトリガーされる前に、前回のソフト・コミットに続いて追加するドキュメントの最大数。 |
maxTime | 1000 | ソフト・コミットが自動的にトリガーされる、次の新しいドキュメントが追加されるまでの最大期限(単位はミリ秒)。 |
更新ハンドラーとsolrconfig.xmlの変更方法の詳細については、Solrのドキュメントを参照してください。
更新パフォーマンスの構成
更新に長時間かかり、autoSoftCommitの値がデフォルト値(1000ms)よりも大きくなっている場合は、solrconfig.xmlファイルでautoSoftCommitをデフォルト値にリセットします。