YaCyとは
YaCy(ヤシー、ヤスィー)は、「人民による人民のためのウェブ検索」を標榜する、オープンソースの分散型
検索エンジンです。GPLv2
ライセンスで提供されており、そのコア部分は
Javaで記述されています。YaCyは、ピア・ツー・ピア(P2P)ネットワークを基盤としており、中央サーバーに依存しない分散型のシステム構成が特徴です。
概要
他の分散型
検索エンジンと同様に、YaCyのインデックス情報はP2Pネットワーク上の多数のコンピュータに分散されます。各YaCyピアは独立してウェブページのクロールを行い、収集した情報を分析・索引化します。そして、
分散ハッシュテーブル(DHT)を用いて、そのインデックス情報を他のYaCyピアと共有します。
YaCyネットワークには中央サーバーが存在せず、全てのピアが対等に扱われるピュアP2P構成となっています。ユーザは、YaCyが提供する独自の検索ページを通じて、他の
検索エンジンと同様に検索を行うことができます。内部の全文
検索エンジンにはApache Solrが採用されており、一部日本語化もされていますが、完全ではありません。
システムコンポーネント
YaCyは、以下の4つの要素から構成されています。
1.
クローラ: ウェブページのリンクをたどり、その内容を分析する機構。
2.
インデクサ: 各単語を単語ハッシュの形で逆引き単語索引(Reverse Word Index, RWI)に格納。各単語は関連URLやランキング情報を持つ。
3.
ユーザーインターフェース: ローカル環境で提供される、検索および管理用のウェブインターフェース。
4.
データストレージ: RWIや
分散ハッシュテーブルを格納するためのデータベース。
検索技術
YaCyは、クローラで収集したウェブページを解析し、インデックスを作成してローカルに保存します。YaCyネットワークに参加すると、ローカルインデックスはネットワークの共有インデックスにマージされます。検索時には、ローカルインデックスだけでなく、ネットワーク上のグローバルインデックスからも情報を取得し、検索結果に反映させます。
また、内部の全文
検索エンジンにはApache Solrが使用されており、Solrクエリ形式で検索クエリを記述したり、Solr Boostクエリでランキングを調整することも可能です。
他のサービスとの連携
YaCyは、外部サービスとの連携機能も備えています。例えば、KnowledgeLoader内のGeoNameを利用してOpenStreetMapと連携したり、他のサービスのOpenSearch形式のデータを読み込んで検索結果に反映させることができます。
YaCyネットワーク
デフォルトの公開YaCyネットワークは"freeworld"ですが、独自のYaCyネットワークを構築して参加することも可能です。これにより、独自の検索サイトを作成できます。また、YaCyネットワークに参加せずに、ローカルネットワーク(ファイルシステムや
イントラネットなど)のインデックスを作成したり、他のピアから独立して動作させることもできます。
YaCyネットワークでは、各ピアは直接アクセスできるピアをSeniorピア、できないピアをJuniorピア、アクセスでき、シードリストと呼ばれるピアリストを公開しているピアをPrincipalピアと呼びます。通常、ドキュメント数を増やすにはクローリングが必要ですが、Senior/Principalピアは自動的にDHTを送受信することでドキュメント数を増やすことができます。Juniorピアでも、RWIやドキュメントを他のピア(Senior/Principalピアのみ)に送信可能です。
ユーザーインターフェース
YaCyのユーザーインターフェースは、デフォルトでBootstrapを使用していますが、カスタマイズも可能です。また、検索結果はOpenSearch形式や形式などで利用できます。
YaCyの利点
YaCyの最大の利点は、その透明性です。主要な
検索エンジンはクローズドシステムであり、その検索技術は公開されていませんが、YaCyはオープンソースであり、利用者が評価基準を自由に設定できるため、透明性の高い検索が可能です。
プライバシーの保護
YaCyでの検索は、自己ピア内のみで処理する場合(プライバシーモード/ステルスモード)は検索クエリの監視がほぼ不可能です。ただし、YaCyネットワークを利用する場合は、ハッシュ化された検索語がネットワーク上に流れるため、検索語を一切知られたくない場合はプライバシーモードを利用する必要があります。プライバシーモードは、デフォルトのユーザーインターフェースで変更できます。
検閲回避
商用
検索エンジンでは、検索結果の評価に企業の意図が反映されることがありますが、YaCyでは利用者が最終的な評価を行うため、意図的なランキング操作などの検閲を回避できます。これにより、
フィルターバブルを回避することが可能です。また、
ブラックリスト機能などを使用して、特定のページを検索結果から除外することもできます。
YaCyは、その設計上、
イントラネット用の
検索エンジンとして利用できます。また、深層Web(
Tor、
Freenet、I2Pなど)のインデックスにも使用可能です。
特殊な形式のファイルの検索
YaCyは、
Microsoft Officeのファイル、MP3などの音楽ファイル、torrent、gzip、apk、pdfなど、さまざまな種類のファイルを検索できます。また、検索には利用者のコンピュータのみが必要なため、集中的なウェブ検索に伴う電力消費を削減できます。
問題点
YaCyには、P2Pの特性から、NAT越え問題などの課題があります。また、YaCyネットワークは誰にでも公開されており、全てのピアが対等に扱われるため、悪意のあるピアが不正確な検索結果を挿入する可能性もあります。ただし、
ブラックリスト機能などである程度は防止できます。
サイトのランキングはYaCyのクライアント側で行われるため、主要な
検索エンジンよりも動作が遅くなる場合があります。また、ランキングアルゴリズムは、主要な
検索エンジンよりも劣る場合がありますが、他のOpenSearch対応システムから検索結果を読み込むことで改善できます。
脚注
関連項目
Dooble - YaCy
検索エンジンツールウィジェットを搭載したオープンソースのウェブブラウザ。
FAROO - YaCyと同様の分散型
検索エンジン。
MetaGer'>
MetaGer - ドイツのメタ
検索エンジン。YaCyの検索結果も使用。
外部リンク
YaCy公式ウェブサイト
YaCy (@yacy_search) - X(旧Twitter)
YaCy 'demo1': Search Page - YaCyの公式デモサイト(英語)。実際に検索可能。
*
Yacy - GitHub