BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Hibernate Search:ドメインモデルの索引付き全文検索

Hibernate Search:ドメインモデルの索引付き全文検索

先ごろ、Hibernate Searchプロジェクトのセカンドベータが、新たにリリースされた。Hibernate Searchのプロジェクトリードであり、Hibernate AnnotationsおよびHibernate EntityManagerのプロジェクトリードでもある、エマニュエル・ベルナール(Emmanuel Bernard)に詳しい話を聞いた。エマニュエルによるとHibernate Searchプロジェクトの目標は、HibernateJPA(Java Persistence API)の利用者が、HibernateやJPAによって管理されるオブジェクトに対して、索引付きの全文検索を可能にすることにある。Hibernate Searchの主な機能を以下にあげる

  • Luceneとの統合 - Lucene は強力で効率的な検索エンジンとして確かな実績がある
  • 自動的なデータの挿入と更新 - Hibernateによってオブジェクトが追加または更新されると、索引もまた透過的に更新される
  • 様々の種類の複雑な検索のサポート - ワイルドカード検索、マルチワード検索、近似・同義語検索または、非常に高速な検索結果の順序付けを行うことができる
  • 検索のクラスタリング - Hibernate Searchは、JMSベースの非同期問い合わせ・索引付けシステムを含む、いくつかの組み込みのクラスタリングソリューションを持っている
  • Lucene APIのダイレクト呼び出し - 特別に複雑な問い合わせが必要なら、Lucene APIをダイレクトに利用することができる
  • 自動的なLuceneの管理 - Hibernate SearchはLuceneの索引を管理および最適化し、効率的にLucene APIを利用できるようにする

プロジェクトの主な目標は次の通りである。

  • 使いやすさ - HibernateのORMと同じように、Hibernate Searchはあなたの仕事の90%を行い、あなたをより難しい残りの仕事に集中させる
  • 既存のHibernateやJPAのプログラミングモデルとの一貫性 - 既存のプログラミングモデルとの自然な統合は「最初からの目標」である

エマニュエルは、これらの目標の具体的な実例をいくつか挙げてくれた。

  • HQLクエリーは、オブジェクトの生成方法を変えることで、検索クエリーに変換することができる。「通常はわずかなコードの変更」で、他(問い合わせの実行や結果の形式)はすべて変わらない
  • プロセスはブートストラップではない。なぜならば、Hibernate Searchの影響は、既存のHibernateやJPAの基盤に対して透過的であるから
  • 最小限2つのプロパティを、persistence.xmlまたはhibernate.cfg.xmlに設定する必要がある

エマニュエルは、最終的に3.0がリリースされる前に彼が行うもう少しの仕事である、問い合わせと索引の最適化について示唆した。

Hibernate Searchのコアコードは実際にかなり安定しています。それがベータである主な理由は、いくつかの拡張APIについて私たちがまだ確信を持てないからです。Hibernate Searchのコアは極めて柔軟で、たくさんのカスタム戦略を埋め込むことができます。それらは今までのところ、かなり安定していますが、私たちはAPIが安定していることに確信を持てる、完全な製品にしたいと思っています。

あなたがよく知っているとおり、オープンソースのプロジェクトは、それが完了した時にリリースされます。私に言えることは、夏は長く、私はたくさんの休暇を予定していない、ということです(笑)。

Hibernate Searchの戦略の是非について、興味深い議論も始まっている。サンジブ・ジバン(Sanjiv Jivan)はHibernate Searchの長所と短所についての見解を述べ、エマニュエル・ベルナールがサンジブの懸念に対して回答している。あなたはHibernate Searchをどのように見ますか?

(原文は2007年6月18日にリリースされました)

この記事に星をつける

おすすめ度
スタイル

BT