BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Lucene 2.3: インデックス作成パフォーマンスの大幅な向上と新たな機械学習プロジェクト

Lucene 2.3: インデックス作成パフォーマンスの大幅な向上と新たな機械学習プロジェクト

Java で記述された高性能でフル機能の全文検索エンジンを開発する Apache Lucene(source)プロジェクトは 1 月 24 日、バージョン 2.3 (source)をリリースした。InfoQ はプロジェクトのコミッタで PMC メンバー(source)でもある Grant Ingersoll 氏(source)と話をし、今回のリリースと Lucene の今後についてより多くの情報を得た。

Ingersoll 氏によると、今回のリリースにおける最大の変更点はインデックス作成アルゴリズムである。そのアルゴリズムでは新しいインメモリモデルを使って大幅な高速化を実現している。また、いくつかのテストを行ったところ、既存の Lucene 2.2 の JAR ファイルを単純に 2.3 のものに置き換えるだけで、インデックス作成のパフォーマンスが 500% 向上するという結果を得たそうだ。その他には次のような変更点が挙げられる。

  • インデックス管理の改善- インデックス作成中に内部ファイルのマージが原因で時々発生していた長い中断時間がなくなり、インデックス作成プロセスを管理するための別のアプローチを実装しやすくなっている。
  • オブジェクトプーリング-  インデックス作成のための解析時に Document、 Field、 Token のインスタンスを再利用できるようになった。これにより解析が高速化され、インデックス作成時のメモリ割当が減少する。
  •  IndexReader の reopen メソッド - 新しく導入された reopen メソッドはインデックス全体をリロードせずに更新のあった部分だけをロードするので、これを使ってインデックスの更新をキャプチャすれば、より高速である。
  • さらに簡単になった IndexWriter のチューニング - setMaxBufferedDocs メソッドが、より直感的な setRAMBufferSizeMB メソッドで置き換えられた。

さらに、バージョン 2.3 は 2.2 から再コンパイルせずに簡単に置き換えることができるよう意図されている。完全なチェンジログ(source)も閲覧可能だ。

また、Ingersoll 氏は Lucene の今後の計画についても説明し、次のリリースは 2.9 になるだろうと語った。2.9  リリースは Lucene 3.0 に備えて API の一部を非推奨にしたりクリーンアップしたりする比較的小規模なバージョンアップだ。バージョン 3.0 は、サポートされる Java のバージョンとして最低でも JDK 5 が必要になるという変更を伴うメジャーリリースとなる。その他の主要な機能はまだ決まっていない。

Ingersoll 氏は、Lucene と Solr (source)が強く統合され、そして Nutch(source)、Tika(source)、Hadoop (source)とも相当な連携がなされたと指摘して Lucene コミュニティ全体についても論じ、彼自身が立ち上げプロセスに携わっている Mahout (source)という名前の新しいプロジェクトについても説明した。

Mahout は別個のプロジェクトになるだろうが、Lucene ユーザにとって有益なものとなる可能性がある。現在、Lucene 用の JIRA には機械学習アルゴリズムを実装するいくつかのパッチが上がっている。このプロジェクトの目的は、商用レベルの品質をもつ大規模な機械学習アルゴリズムを Hadoop をベースに構築し、Apache ライセンスのもとで提供することだ。すでに多くの関心を集めているし、来月にはこのプロジェクトを進めたいと考えている。

Mahout を作り出すことで Google やそれに類する企業の隠された技術をさらに明らかにし、それらの機能を人々に提供して新たなイノベーションに拍車をかけたい。プロジェクトプラン(source)と Incubator proposal (source)が公開されているので、この新しいプロジェクトに興味をもった人は見てほしい。Ingersoll 氏はそのように語っている(source)

原文はこちらです:http://www.infoq.com/news/2008/01/lucene-23-mahout

この記事に星をつける

おすすめ度
スタイル

BT