TOPサーバ構築・運用> Hibernate Searchとは?




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

第1回:Hibernate Searchって何だ?

著者:ロンウイット  関口 宏司   2007/11/12
1   2  3  次のページ
Hibernate Searchとは?

   本連載では、Hibernate Searchによる全文検索システムの構築について解説していく。

   Hibernate Searchとは、JBoss Hibernateのフレームワークから透過的に全文検索の機能を利用できるようにしたJBoss Hibernateへのアドオン・コンポーネントである。「透過的」な全文検索機能へのアクセスにはJBoss HibernateのAPIとアノテーションを通じて行う。また、全文検索の機能は「JBoss EAP+Luceneによる全文検索システム」で紹介している「Lucene」の利用が前提となっているので注意してほしい。

   筆者はHibernate Searchを使う理由には、2つの大きなメリットがあると考えている。


メリット1「RDBと検索エンジンのデータの同期」

   「JBoss EAP+Luceneによる全文検索システム」では、Yahoo!オークションの商品情報を検索するWebアプリケーションを作成している。そこでは商品情報をLuceneの転置索引(以下、検索インデックス)に登録したため、リレーショナルデータベース(以下、RDB)を必要としていない。

   しかし現実のシステムでは商品の全情報はRDBで管理し、全文検索のために必要な一部の情報を使って検索インデックスを作成する。これはRDBと検索エンジンを比較した場合、RDBはデータ管理が得意であり、検索エンジンは全文検索が得意という特徴があるからだ。

   具体的には、RDBはデータの新規追加(INSERT)、更新(UPDATE)および削除(DELETE)をリアルタイムにこなすことが得意である。しかし、全文検索を行うにはLIKEによるパターンマッチを使用することになり、レコード件数が多い場合に性能上の問題が出てくる。一方で、検索エンジンは全文検索を得意とするが、リアルタイムのデータ更新は不得意である。

   そこで両者のメリットを活かしたシステム構築を行う必要がでてくる(図1)。

両者のメリットを活かしたシステム構成
図1:両者のメリットを活かしたシステム構成

   RDBと検索エンジンを組み合わせたシステム構築を行う場合、今度は「RDBのテーブル内のレコードの情報」と「検索エンジンの検索インデックスの内容」を同期させなければならない、という新たな課題が持ちあがってくる。

   この課題を克服するものとしてHibernate Searchが利用できるのだ。Hibernate Searchのセッションを通じてRDBに更新(INSERT/UPDATE/DELETE)をかけると、自動的に検索インデックスの更新が行われるようになる。これがHibernate Searchの第1のメリットである。なお、Hibernate Searchを利用するには、JBoss Hibernateの使用が必須となる。

   JBoss HibernateはJavaオブジェクトをRDBのテーブルに永続化するために、オブジェクト/リレーショナルマッピング(O/Rマッピング)を自動的に行うオープンソースのフレームワークである。JBoss Hibernateは、JBoss Enterprise MiddlewareのJBoss Enterprise Frameworksとして提供されており、レッドハット社のサポートが受けられる。

   以降ではJBoss Hibernateへの基本知識があるものとして解説していくので、詳しく知りたい方は下記のURLを参照していただきたい。

JBoss Hibernate(Hibernate Core)
http://www.hibernate.org/344.html

JBoss Hibernate(レッドハット社)
http://www.jp.redhat.com/jboss/frameworks/hibernate/

   次にもう1つのメリットを解説する。

1   2  3  次のページ


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

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


この記事の評価をお聞かせください
ボタンをクリックしますとウインドウが開きます。
ご意見、ご要望にお応えします! インプレスIT INSIDE

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

Think IT 過去人気記事

注目おすすめ情報

Think IT人気ライター BEST 5

IT製品/サービス資料ダウンロード
    おすすめのホワイトペーパー情報を準備中です