5.2.2. 結果サイズ

一致するドキュメントの合計数を知ることが役に立つ場合があります。
  • Google のような機能用 (約 888,000,000 のうちの 1-10)
  • 高速なページ処理ナビゲーションの実装
  • マルチステップ検索エンジンの実装 (制限されたクエリが結果をまったく返さない、または十分な結果を返さない場合に近似値を追加)
もちろん、一致するすべてのドキュメントを取得することはコストが高すぎます。Hibernate Search では、ページ処理パラメータに関係なく一致するドキュメントの合計数を取得できます。さらに、オブジェクトをまったくロードせずに一致するエレメントの数を取得できます。

例5.11 クエリの結果サイズの決定

org.hibernate.search.FullTextQuery query = s.createFullTextQuery( luceneQuery, Book.class );
assert 3245 == query.getResultSize(); //return the number of matching books without loading a single one

org.hibernate.search.FullTextQuery query = s.createFullTextQuery( luceneQuery, Book.class );
query.setMaxResults(10);
List results = query.list();
assert 3245 == query.getResultSize(); //return the total number of matching books regardless of pagination

注記

Google のように、インデックスがデータベースと完全に同期されていない場合 (非同期クラスタなど)、結果の数は近似になります。