japan.internet.comThe Internet & IT Network
Twitter
RSS
  • ニュース
  • コラム
  • リサーチ
  • ヘッドライン
  • 特集
  • ブログ
  • プレスリリース
  • 専門チャンネル
  • イベント
  • ランキング
  • ニュースメール
2009年11月24日
文字サイズ文字サイズ小文字サイズ中文字サイズ大
事業仕分けによる次世代スーパーコンピューターの開発予算削減について、どうお考えですか?
賛成
反対
どちらとも言えない
投票締切 11/30 12:00
Webテクノロジー コラム2005年9月14日 09:00
P2P とコラボレーション
P2P とコラボレーション アリエル・ネットワーク(ありえる・ねっとわーく)メールホーム
自社開発の P2P フレームワークを元に、コラボレーションソフトの開発・販売や、P2Pアプリケーション開発のコンサルティングを行っている。

HyperEstraier のサーバーサイド P2P による分散検索

国内国内internet.com発の記事
前回から少し時間があいてしまいましたが、 今回からこのコラムの執筆者も変わり、 今後はもう少し技術的な話やとんがったソフトウェアについて紹介していきます。

今回は、少し毛色を変えて、 全文検索技術ソフトウェアの中で、 P2P による分散検索を実現する HyperEstraier について紹介してみたいと思います。

■HyperEstraier の概要

HyperEstraier は、 情報処理推進機構(IPA)による2004年度第2回未踏ソフトウェア創造事業の支援を受けて開発された全文検索エンジンです。 インデックスを使い、大量の文書を効率よく検索することができます。

オープンソースの全文検索エンジンとしては Namazu が有名ですが、 HyperEstraier も、 GNU Lesser General Public License に基づいて配布されるフリーソフトウェアです。 ライブラリの形式で実装されていますので、 各種アプリケーションに組み込むことが容易にできるという特徴があります。

全文検索のためのインデックスの作成方法は、 大きく分けて、 形態素解析を使ったわかち書きによる方法と、 Nグラム法よる方法があります。

わかち書きによる方法では、 あらかじめ決まった辞書により、キーワードの抽出を行います。 このため、辞書にない単語は検索からもれることがあります。 一方のNグラム法では、 辞書を使わずにインデックスを作成します。 このため、インデックスのサイズは大きくなりますが、 辞書にない単語でも検索洩れは発生しない特徴があります。

■HyperEstraier の P2P 機能

HyperEstraier のもうひとつの大きな特徴として、 P2P 技術を利用した分散検索機能があります。

HyperEstraier の P2P では、 検索を依頼するクライアントと、 実際に検索を行うサーバーに分かれています。 この仕組自体は今まであるクライアント/サーバーモデルと同一です。

P2P としてネットワークを形成しているのは、 HyperEstraier のサーバー群です。 以前、このコラムで紹介したソフトウェアは、 クライアントサイドでの P2P の利用が多くありましたが、 HyperEstraier はサーバーサイドでの P2P 技術になります。

クライアントは、HyperEstraier サーバーのひとつに検索を依頼します。 サーバーAに依頼した場合は、 サーバーAで検索が実行され、 同時にサーバーAが接続してるサーバーBやサーバーCに、 サーバーAが検索を依頼します。

クライアントは、 サーバーAの検索結果と、 サーバーBやサーバーCなどの複数のサーバーでの検索結果を、 一度に受け取ることができます。

特にこのシステムの特徴が生きるのが、 大量の文書を扱う場合です。

検索速度はインデックスのサイズが増えるに従って遅くなっていきます。 そのため、1,000万件の文書をひとつのインデックスで処理するより、 100万件ごとに10個のサーバーで同時に検索を行うほうが効率的になります。 また、検索処理を実行する時のサーバーの CPU 負荷も分散されるため、 効率よく大量の文書を処理することができるようになります。

■経路選択と信頼度

多くの P2P アプリケーションでは、 お互いの P2P ノード同士の接続は自動的に行われています。 つまり、ユーザーは意識する必要はありませんでした。 HyperEstraier は接続先を明示する必要があります。 これは、一般ユーザーが設定しなければいけないクライアントサイドのアプリケーションと違うところです。

また、接続している方向も重要になってきます。 サーバーAからサーバーBに接続している場合、 サーバーAはサーバーBに検索処理を依頼することができますが、 サーバーBはサーバーAに検索処理を依頼することはできません。 もちろん、双方向に接続設定をすれば、 サーバーBからサーバーAに処理を依頼することが可能になります。

P2P 的であることの利点としては、 サーバーAがサーバーBに、 サーバーBがサーバーCに接続している場合、 サーバーAが検索をサーバーBに依頼すると、 続いてサーバーBは接続しているサーバーCに自動的に処理を依頼することができます。 サーバーAはサーバーCの存在を知らなくても、 必要なサーバー群で検索処理を行うことができます。

サーバーAは他のサーバー群に依頼した検索の結果を受け取ると、 すべての結果をマージしてクライアントに検索結果を返します。

検索の順位付けは、 全文検索ではとくに重要です。 順位付けは、最初に、 実際に検索を行ったサーバー上で行われます。 サーバーAは他のサーバーに依頼した検索結果をフラットな状態で受け取ります。 その後に、各サーバーと自サーバーの間の信頼度係数をもとに、 全体の順位付けを調整していきます。

インターネットでの分散検索アプリケーションを実装した場合、 スパム的な情報を提供するサーバーなどは、 信頼度を低くすることで、 検索結果の順位が低くなり、 最終的には、P2P ネットワークから事実上排除することができるようになります。

相手ノードとの信頼度は、 クライアントとサーバーAの間で、 ユーザーからのフィードバックを元に自動的に重みづけされていきます。 フィードバック自体は、 HyperEstraier ではなく、 それを利用して作成されたアプリケーションが行う必要があります。 フィードバックは、 ユーザーがそのファイルを開くという処理でも実現できます。 また、ボタンを押して評価を設定するなど、 明示的なアクションで行うこともできます。

このようにサーバーサイドで利用される P2P システムは、 クライアントサイドの P2P とは一味違ったものがあります。 次回は、この HyperEstraier を利用して開発が進められている mod_estraier について紹介してみます。(執筆:大谷 弘喜)

Graphic Design Forum
【Graphic Design Forum】
流動的媒体と静的媒体に関する見解(11月18日)
百式のネットビジネス研究
百式のネットビジネス研究
外国で見かけた標識を写真に撮ると翻訳してくれる iPhone アプリ「PicTranslator」(11月24日)
DevX
DevX
HTML 5のフォーム要素(11月24日)
エンジニア転職ノウハウ開発室
エンジニア転職ノウハウ開発室
エンジニア的「合わない」と思う瞬間/理系の人々(11月24日)
「IT の耳」
「IT の耳」
【書評】『Hyper-V スタートアップバイブル』――仮想化についてのすぐれた解説書(11月20日)
週刊-サイト別アクセス状況データ
週刊-サイト別アクセス状況データ
ビデオリサーチインタラクティブ調査(月間インターネットオーディエンスデータ)(11月19日)
海外ソーシャルウェブに学ぶ成功の秘訣
海外ソーシャルウェブに学ぶ成功の秘訣
ゲーム業界を襲う世界的な激震。ソーシャルゲーム急成長のインパクト(11月19日)
今さら聞けない初歩からのアクセス解析
今さら聞けない初歩からのアクセス解析
サイトリニューアル前のアクセス解析活用法(11月19日)
成約率、反応率を上げる Web 文章術
成約率、反応率を上げる Web 文章術
文章力を磨き、キャッシュを生み出す Web サイト に(11月19日)
「Webからの脅威」―その傾向と最新対策
「Webからの脅威」―その傾向と最新対策
新たな対策技術:スパムフィルタリングと E-mail レピュテーション(11月18日)
ROI向上のための戦略的WebPR
ROI向上のための戦略的WebPR
「戦略的 WebPR」のしかけ方〜WebPR の効果測定手法とは〜(11月18日)
Copyright 2009 Japan Internet.com K.K. All Rights Reserved.http://www.internet.com/