検索エンジンの選定と評価項目

2008年12月10日(水)
早坂 良太

Estraier/Hyper Estraier

 Estraier(http://estraier.sourceforge.net/)は個人用途向けの全文検索システムとして開発されたソフトウエアです。最初のリリースは2003年で、原稿執筆時点(2008年11月現在)での最新リリースは2005年12月26日の1.2.29です。Estraierは平林幹雄氏により開発されており、ライセンスはGPLです。

 Estraierの特徴として、関連文書検索を実装していることが挙げられます。関連文書検索とは、検索結果として得られたある文書とそれに関連する内容の文書のリストを提示する機能です。

 また、EstraierにはCGIスクリプトや検索サーバプログラムが用意されており、サイト内検索にすぐ利用することができます。さらには複数のマシンで動作しているCGIスクリプトや検索サーバからメタ検索を行えるCGIスクリプトも用意されています。

 Estraierは単語分割方法として形態素解析かN-gram(uni-gram)を使用することができます。形態素解析にはKAKASI、Chasen、MeCabのどれかを形態素解析器として用います。

 Hyper Estraier(http://hyperestraier.sourceforge.net/)はEstraierの後継となる全文検索システムです。最初のリリースは2005年で、原稿執筆時点(2008年11月現在)での最新リリースは2007年12月24日の1.4.13です。Hyper EstraierはEstraierと同じく平林 幹雄氏による開発で、ライセンスはLGPLです。

 Hyper Estraierの特徴には、P2P連携機能をサポートしていること、Webクローラを同梱していること、N.M-gramという独自のインデックスの作成法を採用していることなどがあります。Hyper EstraierにもEstraierと同じくCGIスクリプトが用意されています。

 Hyper Estraierの単語分割方法はN-gramです。単語をインデックスに登録するときに後続M個の単語を併せて登録するのでN.M-gramといいます。Hyper Estraierでは2.2-gramでインデックスに登録しています。また、MeCabによる形態素解析と併用することも可能となっています。

 Hyper EstraierにはJava、Ruby、Perl、Pythonといった言語のバインディングが用意されており、これらの言語からライブラリとして利用することもできます。Hyper Estraierの使用事例としては、東京都渋谷区(http://www.city.shibuya.tokyo.jp/)やSeasarプロジェクト(http://www.seasar.org/)のサイト内検索などがあります。

Senna

 Senna(http://qwik.jp/senna/)は組み込み型の全文検索システムです。最初のリリースは2005年で、原稿執筆時点(2008年11月現在)での最新リリースは2008年6月12日の1.1.3です。Sennaは有限会社未来検索ブラジルによって開発されており、ライセンスはLGPLです。

 Sennaの特徴は、組み込み型とある通り、DBMSやスクリプト言語処理系などに組み込んで使用することです。SennaはCで開発されており、C APIが用意されているほか、主な組み込み先としては、MySQLバインディングのTritonn(http://qwik.jp/tritonn/)があります。

 また、そのほかにもPostgreSQLバインディングのLudiaや、Ruby、Perl、Python、Java、PHP、C++といった言語向けのバインディングがあります。SennaをDBMSに組み込む場合には、DBMSの全文検索機能として統合された形になるため、Sennaの存在を意識することなくサイトやシステムを構築することができます。

 Sennaは単語分割方法として形態素解析かN-gramを使用することができます。形態素解析器にはMeCabを用います。

 Sennaの使用事例としてはpixiv(http://www.pixiv.net/)やGREE(http://gree.jp/)、はてなブックマーク(http://b.hatena.ne.jp/)の旧バージョンの検索機能のほか、2ちゃんねる検索(http://find.2ch.net/)などが挙げられます。

 以上、5つの全文検索システムについて紹介しました。次回はこれらの全文検索システムについて速度性能を比較していく予定です。

 なお、本記事に関して電気通信大学 尾内理紀夫氏と林貴宏氏からいただいたご支援、ご協力に深謝します。

電気通信大学 電気通信学研究科 情報工学専攻を修了。尾内・林研究室では検索エンジンをテーマとして研究。全文検索システムの速度性能比較や、検索エンジンの構築を行った。現在は日本アルゴリズム株式会社に所属している。http://www.nalgo.co.jp/

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています