更新ハンドラーおよびautoSoftCommitの構成

更新ハンドラーを構成するための手順。

デフォルトの高パフォーマンス更新ハンドラーのフラグを設定し、Solrのニア・リアルタイム機能を使用するようにsolrconfig.xmlを構成します。

たとえば、ウィキペディア・デモのSolr構成ファイルを、以下のようにこのフラグに設定し、autoSoftCommit要素のコメントを解除します。
<!-- 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をデフォルト値にリセットします。