オープンソース検索エンジン「Nutch」の実力:安藤幸央のランダウン(23)
「Java FAQ(What's New)」の安藤幸央氏が、CoolなプログラミングのためのノウハウやTIPS、筆者の経験などを「Rundown」(駆け足の要点説明)でお届けします。(編集局)
検索エンジンの台頭
現在、インターネットを利用するユーザーにとっても、インターネットで仕事やプログラム開発を行っているユーザーにとっても検索エンジンはとても重要なものです。SEO(Search Engine Optimization)という業種も確立し、新規インターネットビジネスサイトを立ち上げる際や、既存サイトのアクセス数を増加させたい場合、SEOが重要な意味を持つようになってきています。つまりWebデザインだけでなく、Webサイト(ページ)がどのように検索エンジンとかかわってくるのか、SEO分析や、SEOに関するノウハウが重要視されます。
確かに便利な検索エンジンの台頭は歓迎されることです。一方、少なからず問題もはらんでいます。現在の寡占状態にある検索エンジン業界が、ある1社(または数社)によって独占される状態がこないともいい切れないことです。今日、敏感に感じることができるほど検索エンジンの数は減少しています。現在の寡占状態からみて、ある企業の商業利用に独占される可能性がないとはいい切れません。1社の独占は、多くのインターネットのユーザーにとってよくないことです。
現在はある程度落ち着きましたが、検索エンジン業界の中では熾烈な買収劇が繰り広げられています。Microsoftも100億ドルでGoogleを買収しようとしましたが話がまとまらず、独自の検索技術開発に注力しているといううわさも聞きます(その後この買収のうわさは否定され、真偽のほどは定かではありません)。
うわさはともかく、検索エンジンビジネスが100億ドル級のインターネットビジネスとして機能していることが明らかになったともいえます。つまりは新規検索エンジンとして業界に乗り込もうとすると、数十億ドル級の潤沢な資金がないと無理ということを示唆してもいます。
真にオープンな検索エンジンNutch
検索エンジンの寡占・独占状態を打破するために登場したのがオープンな検索エンジン「Nutch」です。Nutchはソースコードが公開され、検索のアルゴリズムが公開されている、真の意味でのオープンな検索エンジンソフトウェアです。ただし、公開されているのはそのソフトウェア自身であり、現在は検証用のデモシステムが構築されているのみです。Nutchプロジェクトは2003年6月に、ユーザーが1億個の文書ファイルを検索できるデモシステムを構築しました。
Nutchは、開発リーダーのDoug Cutting氏が命名したものです。由来は、彼の幼い息子が「lunch(昼食)」のことを「nutch」といっていたのを聞き、それをこの検索エンジンの名前に使ったそうです。
Nutchのプロジェクト進行には、検索エンジン「Overture」(現在はYahoo!に買収された)が資金的に協力しています。またロータスの創業者であり、現EFF(エレクトロニック・フロンティア財団)のミッチ・ケイパー氏や、O'Reillyのティム・オライリー氏も協力しているそうです。
Nutchの基本部分は、電子メールなどの検索を行うための「Jakarta Lucene」がベースになっています。また、Nutchのデモシステムは人手で編集されているディレクトリサービス「DMOZ Open Directory(dmoz.org)」を起点としています。DMOZに登録されていれば、Nutchのデモシステムからの検索対象となります(つまりはNutchデモシステムからのクローラー(注)の対象となります)。一般的なApache+Tomcat環境でデモシステムを構築し、動作させることができます。
注:検索用の情報を集めるために、インターネット上のサイトを定期的に巡回するロボット型のプログラムのこと
Nutchが目指す性能として以下のポリシーが掲げられています。
- 1カ月ごとに10億ページを取ってくる検索エンジンとして使えること
- これらの規模のページのインデックスを維持すること
- 1秒につき最高1000回の検索インデックスを付けること
- 非常に高品質で素晴らしい検索結果を提供すること
- 最小のコストで動作すること
Nutchは検索アルゴリズムを公開しています。これは暗号技術が、それ自身のアルゴリズムを公開することによって、その暗号の強固さをアピールすることにとてもよく似ています。検索エンジンのアルゴリズムを公開すると、脆弱性があった場合に狙われるとか、アルゴリズム公開を逆手にとり不当な順位付けを導くようWebページをカスタマイズするとかの心配も語られています。
Nutchの目的は、オープンな公正な検索結果を提示することにあります。現在の商用検索エンジンに対抗しよう、駆逐しようとするものではありません。
Nutchの課題
オープンソース検索エンジンとして前途洋々に思えるNutchですが、開発リソース(開発者数)が十分でないなど、さまざまな課題も抱えています。
- Java/UTF-8ベースで国際化されており、日本語も使えるが、各国語固有の細かい対応や、ドキュメントなどの環境が未整備
- 自分で検索エンジンを構築する場合、クローラーがないので、検索の元となる情報の収集が別途必要となる(オープンソースのクローラー Grub <http://www.grub.org/> を推奨している)
- 本格的に運用するには、大規模なマシンリソースが必要(大量のディスク容量)
- 現在PDFファイル内の文章の検索には対応していない
Nutchの未来
優秀な検索エンジンが無料で使えるのに、なぜわざわざ新たに検索エンジンを開発しようとするのでしょう? その答えとして、1つのチャンネルしかないテレビを想像してみてください。ニュースの話題は1種類で、お笑いネタも1種類、そうなるとすべて受け身の、お仕着せの情報になってしまう危険性をはらんでいます。
Nutchの果たす役割として、以下の事柄が挙げられます。
- サーチ結果の算出方法についてアルゴリズムの透過性(公開性)の高いエンジンを持つことによって、ほかの検索エンジンの検索結果との比較ができること
- サーチエンジンの構造を公開することにより、より検索技術が一般化し検索技術に関する興味や、研究開発が促進されること
- だれもが独自の検索環境を手に入れることができること
ある特定のカテゴリや、ある特定のサイトに限定した検索エンジンとして、Nutchはとても有用なのではないかといわれています。Nutchは現在のところPtoP的検索エンジンには手を広げていません。その理由は現在の技術では「遅い」ことが分かっているからだそうです。ただ、全面的に否定するわけではなく、PtoP検索エンジンに対する将来的期待も語られています。
Nutchが目指すのは、ある特定の企業の持ち物ではなく、世界のインターネットユーザー全体で所有する、オープンな検索エンジンです。最近GoogleのIPO(株式公開)が話題になっています。実際どのような形で株式公開されるのかはまったくの未定です。ただ、特定企業に株を買い占められるようなことがなく、インターネットでGoogleを利用している多くのユーザーに、企業としてのGoogleを支えてもらえるような形態で株式公開したいとの意向を伝え聞いています。LinuxやApacheのようなオープンソースへの流れが検索業界にも流れ込んできています。Nutchを筆頭として、検索業界・検索技術が大きく変化してきています。「検索」は今後とも目が離せない発展が楽しみな技術の1つです。
余談ですが、日本にはNutchというピーナッツ入りのチョコレート菓子があることは、海外のNutchユーザーたちにはあまり知られていません。 おいしいですよ!
参照一覧
次回は2月下旬の公開予定です。
プロフィール
安藤幸央(あんどう ゆきお)
1970年北海道生まれ。現在、株式会社エクサ マルチメディアソリューションセンター所属。フォトリアリスティック3次元コンピュータグラフィックス、リアルタイムグラフィックスやネットワークを利用した各種開発業務に携わる。コンピュータ自動彩色システムや3次元イメージ検索システム大規模データ可視化システム、リアルタイムCG投影システム、建築業界、エンターテインメント向け3次元 CG ソフトの開発、インターネットベースのコンピュータグラフィックスシステムなどを手掛ける。また、Java、Web3D、OpenGL、3DCG の情報源となるWebページをまとめている。
ホームページ:
http://www.gimlay.org/~andoh/java/
所属団体:
OpenGL_Japan (Member)、SIGGRAPH TOKYO (Vice Chairman)
主な著書
「VRML 60分ガイド」(監訳、ソフトバンク)
「これがJava だ! インターネットの新たな主役」(共著、日本経済新聞社)
「The Java3D API仕様」(監修、アスキー)
Copyright © ITmedia, Inc. All Rights Reserved.