第2回:全文検索機能を試すサンプルを作成しよう! (3/3)

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

第2回:全文検索機能を試すサンプルを作成しよう!

著者:ロンウイット  関口 宏司   2007/11/20
前のページ  1  2  3
社員の検索のソースコード

   「社員の検索」を行うソースコードを図2に示す。

   まず、JBoss HibernateのSessionを前述のHibernateUtilを使って取得している。取得したsessionを全文検索のセッションオブジェクトにするためにSearch.createFullTextSession()メソッドにsessionを渡してFullTextSessionオブジェクトftsを取得する。

   そしてfts.beginTransaction()とfts.getTransaction().commit()の間で検索を実行している。

   検索の実行にはHibernateのQueryオブジェクトに対してlist()メソッドを実行すればよいが、そのQueryオブジェクトを取得するためにLuceneのQueryオブジェクトを引数にしてfts.createFullTextQuery()メソッドを呼び出している。

   なお、LuceneのQueryオブジェクトはLuceneのQueryParserのparse()メソッドに検索式の文字列を渡して取得している。
社員の検索のソースコードと起動コマンド
図3:社員の検索のソースコードと起動コマンド
(画像をクリックすると別ウィンドウに拡大図を表示します)


プログラムの実行

   まず、insertコマンドを与えてプログラムを起動する。

   一度「insert」で社員データを登録したらあとは「query」や「update」コマンドで検索やデータの更新を行うことができる(insert、updateおよびqueryは何度でも繰り返して実行できる)。なお、プログラムの実行に先立ってRDBの準備とEMPLOYEEテーブルの作成およびJBoss Hibernateの設定ファイルの生成などは別途行っておかなければならないので注意していただきたい。

   ZIPファイルには、プログラムの起動やRDBのテーブルの作成などが簡単に実行できるAntのbuild.xmlファイルが含まれている。使い方の詳しい説明はZIPファイルに含まれているreadme.txtを参照していただきたい。


まとめ

   Hibernate Searchは、LuceneのAPIをほとんど使用することなしにLuceneの全文検索の機能を利用できるように設計されたフレームワークである。

   全文検索機能の利用には、HibernateのAPIとアノテーションを使うだけなので、特に日ごろHibernateを愛用しているエンジニアであればすぐにでも使いはじめられるだろう。またJava EEコンポーネントとの親和性も高くなりJava EE技術の延長でエンタープライズサーチシステムの構築が容易になるであろう。

前のページ  1  2  3


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

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


INDEX
第2回:全文検索機能を試すサンプルを作成しよう!
 Hibernate Searchのサンプルプログラム
 HibernateUtilクラス
社員の検索のソースコード
Hibernate Searchで全文検索システム構築
第1回Hibernate Searchって何だ?
第2回全文検索機能を試すサンプルを作成しよう!
関連記事
JBoss EAP+Luceneによる全文検索システム
JBoss Enterprise Application Platformの全貌
EJB 3を再考する

人気記事トップ10

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

企画広告も役立つ情報バッチリ! Sponsored