検索

14.5. インデックスの最適化

download PDF
時折、Lucene インデックスを最適化する必要があります。このプロセスは基本的にはデフラグです。最適化がトリガーされるまで、Lucene は削除されたドキュメントのみをマークします。物理的には適用されません。最適化プロセス中に削除が適用され、Lucene ディレクトリー内のファイル数にも影響を及ぼします。
Lucene インデックスを最適化すると検索が高速になりますが、インデックス化 (更新) パフォーマンスには影響はありません。最適化中に検索を実行できますが、おそらく遅くなる可能性があります。インデックスの更新はすべて停止します。最適化のスケジュール設定が推奨されます。
  • アイドル状態のシステムの場合、または検索が頻繁に行われない場合
  • 多数のインデックス変更が適用された後。
MassIndexer (「MassIndexer の使用」 を参照) は、デフォルトで、開始時と処理終了時にインデックスを最適化します。MassIndexer を使用します。optimizeAfterPurgeおよび MassIndexeroptimizeOnFinishこのデフォルトの動作を変更します。

14.5.1. 自動最適化

Hibernate Search は、以下のいずれかの後にインデックスを自動的に最適化できます。
  • 一定量の操作 (挿入または削除)。
  • 一定量のトランザクション。
インデックスの自動最適化の設定は、グローバルまたはインデックスごとに定義できます。

例14.67 自動最適化パラメーターの定義

hibernate.search.default.optimizer.operation_limit.max = 1000
hibernate.search.default.optimizer.transaction_limit.max = 100
hibernate.search.Animal.optimizer.transaction_limit.max = 50
最適化は、以下のいずれかの時点で Animal インデックスに対してトリガーされます。
  • 追加および削除の数は 1000 に到達します。
  • トランザクション数は 50 に達します (hibernate.search.Animal.optimizer.transaction_limit.max優先するhibernate.search.default.optimizer.transaction_limit.max)。
これらのパラメーターが定義されていないと、最適化は自動的に処理されません。
OptimizerStrategy のデフォルト実装は、org.hibernate.search.store.optimization.OptimizerStrategy を実装して上書きし、optimizer.implementation プロパティーを実装の完全修飾名に設定して上書きできます。この実装は、インターフェースを実装し、パブリッククラスであり、引数なしでパブリックコンストラクターを持つ必要があります。

例14.68 カスタム OptimizerStrategy のロード

hibernate.search.default.optimizer.implementation = com.acme.worlddomination.SmartOptimizer
hibernate.search.default.optimizer.SomeOption = CustomConfigurationValue
hibernate.search.humans.optimizer.implementation = default
キーワード default を使用すると、Hibernate Search のデフォルト実装を選択できます。.optimizer キーセパレーター以降のすべてのプロパティーは、起動時に実装の initialize メソッドに渡されます。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.