8.3. IndexReader の使用


Lucene のクエリは IndexReader で実行されます。Hibernate Search はパフォーマンスを最大化するためにすべてのインデックスリーダーをキャッシュします。コードはこのキャッシュされたリソースにアクセスできますが、 "good citizen" ルールに従う必要があります。

例8.3 IndexReader へのアクセス

DirectoryProvider orderProvider = searchFactory.getDirectoryProviders(Order.class)[0];
DirectoryProvider clientProvider = searchFactory.getDirectoryProviders(Client.class)[0];

ReaderProvider readerProvider = searchFactory.getReaderProvider();
IndexReader reader = readerProvider.openReader(orderProvider, clientProvider);

try {
    //do read-only operations on the reader
}
finally {
    readerProvider.closeReader(reader);
}
Copy to Clipboard Toggle word wrap
ReaderProvider (「リーダー方針」 で説明) はディレクトリプロバイダにより参照されたインデックス上で IndexReader をオープンにします。この IndexReader は複数のクライアントで共有されるため、以下のルールに従う必要があります。
  • indexReader.close() は呼び出さず、常に readerProvider.closeReader(reader) を呼び出します (理想的には Finally Block で)。
  • 変更操作にはこの IndexReader を使用しないでください (例外が発生します)。読み取り/書き込みインデックスリーダーを使用する場合は、Lucene Directory オブジェクトからオープンします。
これらのルール以外に、特にネイティブクエリを実行するために IndexReader を自由に使用できます。共有された IndexReader を使用すると、ほとんどのクエリが効率的になります。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat