InfoQ

News

Lucene 2.2:ペイロード、Functionクエリ、さらなるスピード

作者 Ryan Slobojan, 翻訳者 編集部 投稿日 2007年9月9日 午後11時21分

コミュニティ
Java
トピック
オープンソース,
検索
タグ
Lucene
Lucene Java(サイト・英語) 2.2が発売中(source)である。Luceneは100%Javaで書かれた高性能、フル機能のテキスト検索エンジンである。今回のリリースでは次のようないくつかの新機能が盛り込まれた。
  • Payloads機能:任意のバイナリデータをインデックスのどの項目にも関連付けることができる
  • 関数クエリ:ドキュメントのスコアの算出方法についてより制御することができる(Solrから組み込まれた)
  • NFS経由での「ある時点をとらえる("Point-in-time)」検索:NFSにスナップショットのような機能を提供
  • 新たなPre-analyzed Field API:ダミーのアナライザーコードなしでDocumentのPre-analyzed Fieldを扱える
  • Maven(サイト・英語)での一般リリース:すべてのLuceneモジュールの最新リリースが、Mavenレポジトリを介して入手可能

InfoQは、Luceneプロジェクトのコミッターであり、プロジェクト管理委員会(PMC)のメンバー(source)であるGrant Ingersoll氏(source)にインタビューし、今回のリリースについて詳細を尋ねた。インタビューの中で、Ingersoll氏は、自分の見解・意見はあくまで個人のものであり、Lucene PMCの公式見解ではないことを明確にするようInfoQに要請してきた。

InfoQは、Luceneの2.2リリースでより短い四半期ごとのリリースサイクルへと変わったと確認した。Ingersoll氏によると、このようにリリースの頻度が上がったことで、バグ修正および新機能がより迅速にコミュニティに提供できるといった、いくつかの利点があるとのことである。またリリースのプロセスもMavenのサポートが向上したことで合理化されており、今後のリリースはMavenユーザーにより早く提供されるようである。

InfoQはIngersoll氏に、Payloads機能について尋ねたところ、次のような答えが返ってきた。

Payloadsという新機能により、 項目ごとにインデックスにある情報を保管することができます。例えば、Webページにインデックスをつける場合、関連URLまたはテキスト解析に基づいた重み係数などの追加情報を格納すると有益である場合があります。より高度なアプリケーションの場合、あるスピーチの中で名詞が他の部分よりも重要だとしてスコア付けするため、ある言葉のスピーチを格納すると有益であることもあります。今年ApacheCon Europeで行った私の講演(PDFファイル・英語)で使ったPayloadsのスライドの中に、関連する部分が載っています。
さらにIngersoll氏は、またSolrから始まった新しいFunctionクエリについて、次のように説明した。
新しい検索関数パッケージ(org.apache.lucene.search.function (source)) により、開発者はドキュメントをスコア付けするのにフィールドの実際のコンテンツを使うことができます。例えば、あるドキュメント内のフィールドに緯度・経度情報を格納していれば、これらのフィールド内の情報を使ってドキュメントのランク付けに影響を及ぼすことができます。つまり、Starbucksの検索をしている場合、検索結果においてユーザーに近い場所にある店舗をより遠方の店舗よりも高くランク付けすることができるのです。他には、価格または利幅の情報を使ってランク付けに影響を及ぼす(つまり皆さんの会社にとってより大きな利幅を持つ製品を高くスコア付けする)といった例もあります。倫理的に私がこれに賛同していると言っているわけではなく、こういうことができるということです。)

次にLuceneの次のリリースでユーザーは何を期待できるかという質問に対し、Ingersoll氏は、Michael McCandless氏が主導している新しいメモリ管理技術(source)のおかげでインデックス作成のパフォーマンスに著しい改善が見られるとしている。また同氏は、Luceneの最新リリースでは多数のパフォーマンス強化が見られ、ユーザーは自身でそれを試してみたくなるだろうと述べている。最後にIngersoll氏はJava 5のサポートおよびインデックス作成プロセスにおけるより高い柔軟性が、Luceneの今後のリリースで見られる可能性があると語った。

今回のリリースに盛り込まれたすべてのバグ修正、機能、最適化を列挙した完全なchangelog(txtファイル)が入手可能である。Luceneの前回までのリリースと同様、2.2はLuceneの前回までのバージョンからインデックスを読み込み、インポートすることが可能である。ただしインデックスが変換されてしまったら、Luceneの前のバージョン(例:2.1)でもう読み込むことはできないが。

原文はこちらです:http://www.infoq.com/news/2007/07/lucene22

(原文は2007年7月6日にリリースされました)
ブックマーク
digg+,
reddit+,
del.icio.us+,
dzone+,
Hatena

No comments

返信

特集コンテンツ一覧

Typemock: その過去・現在・未来

Eli Lopian氏率いるTypemock社の過去・現在・未来について、インタビュー形式にて記します。

企業とSaaSの仮想化がもたらすのは、迅速性(アップ)だけではない

この論文では、仮想化やクラウドサービスの複雑なメリットと実世界における応用を検討します。さらに重要なこととして、Contegixが複雑な問題の解決に仮想化を実装している方法や、仮想化を使うべきではないケースについて詳細を提供します。

RubyのFiberを非同期I/Oに使うNeverBlockとRevactor

Fiberはユーザに試練を課すことなくこの考えを実装する有益な並行性ツールとして、ライブラリが2つあります。まさにこのためのソリューションとしてあるのがNeverBlockライブラリです。私たちはNeverBlockプロジェクトのMohammad A. Ali氏とRevactorライブラリのTony Arcier氏に話を聞きました。

拡張性に関する悪習慣

システムの保守容易性や拡張性を確保するためのベスト・プラクティスに関する記事は数多くありますが、この記事では避けた方がいい、いくつかの悪習慣(ワースト・プラクティス)を強調します。

トップスポーツチームの監督に教わる秘訣

この論文では、氏が発見した原則を要約し、その原則をいかにしてソフトウェア開発に応用するかを説明します。

事例研究:Dutch Railwaysのプロジェクトにおける分散拠点でのスクラム・プロジェクト

この記事では、私達がどのようにして大規模(240人月、10万行強)でインドとオランダの開発者も参加したスクラム・プロジェクトを成功させたのかを示しています。

Agile2008チーム参加レポート - 帰国そして変化

Agileカンファレンスに「参加者としてだけでなく、発表者として参加しよう」を掲げたチームgoyattomは、サブミッションを提出し、7つのセッションが日本から選択されました。参加者はカンファレンスで各々の発表や、各セッションへの参加、諸外国のエンジニアとの出会い、ステージ上で DearXPを熱演などの様々な思い出を抱えて、無事日本に戻ってきました。

SilverlightとJavaのインターオペラビリティ

マイクロソフトのRobert Bellが、SilverlightとJavaを使用したインターオペラビリティのシナリオを紹介し、サンプルコードを例にとってアーキテクチャの手引きを提供します。