Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

23.2.6.3. パフォーマンスオプションの設定

以下の設定では、これらの設定は Animal インデックスの 2 つ目のシャードに適用されます。

例23.9 パフォーマンスオプションの設定例

default.Animals.2.indexwriter.max_merge_docs = 10
default.Animals.2.indexwriter.merge_factor = 20
default.Animals.2.indexwriter.term_index_interval = default
default.indexwriter.max_merge_docs = 100
default.indexwriter.ram_buffer_size = 64
  • max_merge_docs = 10
  • merge_factor = 20
  • ram_buffer_size = 64MB
  • term_index_interval = Lucene default
他のすべての値は、Lucene で定義されたデフォルトを使用します。
Lucene のデフォルト値は、Hibernate Search のデフォルト設定です。したがって、以下の表に記載する値は、使用される Lucene のバージョンによって異なります。上記の値はバージョン 2.4 に相対的です。Lucene インデックスのパフォーマンスに関する詳細は、Lucene のドキュメントを参照してください。
注記
バックエンドは常に同じ設定を使用して動作します。

表23.6 インデックス化のパフォーマンスおよび動作プロパティーの一覧

プロパティー 説明 デフォルト値
default.<indexname>.exclusive_index_use
他のプロセスが同じインデックスに書き込む必要がない場合は true に設定します。これにより、Hibernate Search はインデックスの排他モードで動作し、インデックスへの変更を書き込む際にパフォーマンスが向上します。
true (パフォーマンスの向上、シャットダウン時のみロックされる)
default.<indexname>.max_queue_length
各インデックスには、インデックスに適用される更新が含まれる個別の「pipeline」があります。このキューが満杯になると、ブロック操作になります。worker.executionasync として設定されていない限り、この設定を設定するとかなり意味がありません。
1000
default.<indexname>.indexwriter.max_buffered_delete_terms
バッファーインメモリー削除の条件が適用され、フラッシュされるまでに最低限必要な削除用語を決定します。時点でバッファーされたドキュメントがメモリーにある場合、ドキュメントはマージされ、新しいセグメントが作成されます。
Disabled (RAM 使用率によるフラッシュ)
default.<indexname>.indexwriter.max_buffered_docs
インデックス作成中にメモリーでバッファーされたドキュメントの量を制御します。RAM が大きいほど消費されます。
Disabled (RAM 使用率によるフラッシュ)
default.<indexname>.indexwriter.max_merge_docs
セグメント内で許容されるドキュメントの最大数を定義します。値を小さくすると、頻繁に変更されるインデックスでのパフォーマンスが向上します。値を大きくすると、インデックスが頻繁に変更されない場合に検索パフォーマンスが向上します。
Unlimited (Integer.MAX_VALUE)
default.<indexname>.indexwriter.merge_factor
セグメントマージの頻度とサイズを制御します。
挿入時にセグメントインデックスをマージする頻度を決定します。値を小さくすると、インデックス処理時に使用される RAM が少なくなり、最適化されていないインデックスの検索速度が速くなりますが、インデックスの速度は遅くなります。値が大きいと、インデックス時により多くの RAM が使用され、最適化されていないインデックスの検索速度が遅くなるため、インデックスがより速くなります。そのため、大きな値 (> 10) はバッチインデックスの作成に最も適しており、対話的に維持されるインデックスに小さい値 (< 10) が適しています。この値は 2 未満にしないでください。
10
default.<indexname>.indexwriter.merge_min_size
セグメントマージの頻度とサイズを制御します。
このサイズより小さいセグメント (MB 単位) は常に次のセグメントマージ操作の対象となります。
この値を大きく設定すると、マージ操作が高価になり、頻度が低くなる可能性があります。
See also org.apache.lucene.index.LogDocMergePolicy.minMergeSize.
0 MB (実際 ~1K)
default.<indexname>.indexwriter.merge_max_size
セグメントマージの頻度とサイズを制御します。
このサイズより大きいセグメント (MB 単位) は、大きなセグメントにマージされることはありません。
これにより、メモリー要件が減り、一部のマージ操作が最適な検索速度で回避されます。インデックスの最適化時にこの値は無視されます。
See also org.apache.lucene.index.LogDocMergePolicy.maxMergeSize.
無制限
default.<indexname>.indexwriter.merge_max_optimize_size
セグメントマージの頻度とサイズを制御します。
このサイズよりも大きい (MB 単位) セグメントは、インデックスの最適化中にも大きなセグメントではマージされません (merge_max_size 設定も参照)。
org.apache.lucene.index.LogDocMergePolicy に適用されます。maxMergeSizeForOptimize.
無制限
default.<indexname>.indexwriter.merge_calibrate_by_deletes
セグメントマージの頻度とサイズを制御します。
false に設定すると、マージポリシーを見積もるときに削除されたドキュメントを考慮しません。
org.apache.lucene.index.LogMergePolicy に適用されます。calibrateSizeByDeletes.
true
default.<indexname>.indexwriter.ram_buffer_size
ドキュメントバッファー専用の RAM の容量 (MB 単位) を制御します。Max_buffered_docs を一緒に使用すると、いずれのイベントに対してもフラッシュが発生します。
通常、インデックスの高速化には、ドキュメント数ではなく、RAM の使用状況によってフラッシュされ、可能な限り大きな RAM バッファーとして使用することが推奨されます。
16 MB
default.<indexname>.indexwriter.term_index_interval
エキスパート: インデックス用語の間隔を設定します。
大きな値を設定すると、IndexReader が使用するメモリーは少なくなりますが、ランダムアクセスの速度が遅くなります。値を小さくすると、IndexReader によりより多くのメモリーが使用され、用語へのランダムアクセスが速くなります。詳細は、Lucene ドキュメントを参照してください。
128
default.<indexname>.indexwriter.use_compound_file
複合ファイル形式を使用すると、使用するファイル記述子が少なくなります。欠点は、インデックス作成にかかる時間と一時ディスク容量が多いことです。インデックス処理時間を短縮するために、このパラメーターを false に設定できますが、mergeFactor が大きくなるとファイル記述子が不足する可能性があります。
boolean パラメーター。「true」または「false」を使用します。このオプションのデフォルト値は true です。
true
default.enable_dirty_check
すべてのエンティティーの変更に Lucene インデックスの更新が必要であるわけではありません。更新されたエンティティープロパティー(ダーティープロパティー)がすべてインデックス化されていない場合、Hibernate Search はインデックス変更プロセスを省略します。
各更新イベントで呼び出す必要があるカスタムの FieldBridges を使用する場合は、このオプションを無効にします(フィールドブリッジが設定されているプロパティーは変更されません)。
この最適化は、@ClassBridge または @DynamicBoostを使用するクラスには適用されません。
boolean パラメーター。「true」または「false」を使用します。このオプションのデフォルト値は true です。
true