第1回:Hibernate Searchって何だ? (3/3)

Hibernate Searchで全文検索システム構築
Hibernate Searchで全文検索システム構築

第1回:Hibernate Searchって何だ?

著者:ロンウイット  関口 宏司   2007/11/12
前のページ  1  2  3
クラスタのサポート

   JBoss Enterprise Application Platform(以下、JBoss EAP)に搭載されているJMSサーバを使って、クラスタ環境でHibernate Searchアプリケーションを実行することができる。

   Hibernate SearchのノードはMasterとSlaveに分けられる。MasterはJMSキューからインデックス更新処理リクエストを取得し、Masterの検索インデックスを更新する。更新されたインデックスはSlaveノードの検索インデックスにコピーする(cpコマンドやrsyncなどを使ってコピーする)。そしてSlaveはSlaveの検索インデックスを使って検索処理を行う。なお、検索インデックスの更新リクエストはSlaveがJMSキューに投入する。
クラスタ環境におけるHibernate Searchの実行
図3:クラスタ環境におけるHibernate Searchの実行
(画像をクリックすると別ウィンドウに拡大図を表示します)


IndexReaderの戦略種別

   検索処理はLuceneのIndexReaderというクラスのインスタンスを使用して行われる。このインスタンスを取得する「戦略(Reader Strategy)」として、Hibernate Searchは「個別(not-shared)」と「共有(shared)」の各方式を用意している。

   「個別」戦略では、IndexReaderのインスタンスが検索リクエストごとに毎回作成され、使い終わったら破棄される。この方法は検索性能が落ちるため、筆者としては推奨しない。

   「共有」戦略では、Hibernate Search内に検索インデックスに対応した1つのIndexReaderインスタンスを作成し、これですべての検索リクエストを処理する。インデックスが更新された場合は、自動的にIndexReaderの再オープンが実行される。通常はこの戦略を使用する。


次回は

   以上、今回はHibernate Searchの概略を説明した。次回ではビジネスオブジェクトと全文検索の機能がHibernate Searchによってシームレスにマッピングされる様子を、実際にプログラムを書いて確認していく。

前のページ  1  2  3


株式会社ロンウイット 関口 宏司
著者プロフィール
株式会社ロンウイット  関口 宏司
代表取締役社長
数社のITベンダー勤務を経て、2006年5月にロンウイット社を設立。オープンソースの全文検索エンジンLuceneとSolrを企業システムに導入する支援事業を展開している。「Apache Lucene入門」(技術評論社)はじめ著書多数。

ロンウイット:http://www.rondhuit.com/
ブログ:http://lucene.jugem.jp/


INDEX
第1回:Hibernate Searchって何だ?
  Hibernate Searchとは?
  メリット2「LuceneのAPIの隠蔽」
クラスタのサポート
Hibernate Searchで全文検索システム構築
第1回 Hibernate Searchって何だ?
第2回 全文検索機能を試すサンプルを作成しよう!
関連記事
JBoss EAP+Luceneによる全文検索システム
JBoss Enterprise Application Platformの全貌
EJB 3を再考する

人気記事トップ10

人気記事ランキングをもっと見る