2010年2月 8日

アーキテクチャ

新検索プラットフォーム「ABYSS」

  • このエントリーをはてなブックマークに追加

こんにちは、今回は現在開発を進めているヤフーの内部技術について紹介します。

Yahoo!サービス一覧をみるとさまざまなヤフーのサービスがあります。そして、ウェブ検索をはじめ各サービスの多くには検索機能がついています。ウェブ検索はYahoo! Search Technology、通称YSTと呼ばれる検索エンジンをバックエンドに利用しています。一方、ほかのサービスの検索機能はヤフー独自の検索エンジンを利用しています。各サービスの検索機能はそれぞれのニーズに応じて検索条件や結果の表示など細かくカスタマイズされています。そのため、今までは各サービスの検索機能は各サービスごとのエンジニアが検索インデックスを構築し検索インターフェースを開発していました。

このような開発体制では、実際に開発を行う技術者や運用リソースが分散されてしまうなどの問題があり、もっと効率よく手軽に検索機能を開発できないか、という課題がありました。この問題を解決すべく模索したところ、米国Yahoo! Incが提供しているYahoo! Search BOSSのアプローチに目をつけました。Yahoo! Search BOSSは、提供されている検索APIを利用してカスタムの検索エンジンを構築できるサービスです。日本語での概要はTechcrunchの記事が分かりやすく解説されています。BOSSの一部であるBOSS Customのように、検索用のデータを決められた場所にアップロードして必要な設定を行うと専用の検索APIが提供されます。必要に応じてAPI結果を加工して思い通りの検索結果ページを作ることができれば、大幅に開発コストを下げることができるでしょう。私たちはこのアプローチを採用し、さっそく米国Yahoo! IncのBOSSプロジェクト関係者とコンタクトをとり、ヤフーでBOSSをそのまま利用できるかについて検討しました。そしてさまざまな検討を重ねた結果、数多くのYahoo!サービスが利用できるフレキシブルな機能を提供するにはBOSSのような検索プラットフォームを自社で独自に開発した方がよい、という結論に達しました。

そして現在鋭意開発を進めているのが、今回紹介する ABYSS になります。もともとYahoo! Search BOSSの利用を検討していたため当初プロジェクトはBOSSという名前が付けられていましたが、新しい名前をつけようということになり、ABYSSという名前になりました。ABYSSは英語で「計り知れないもの」という意味があり、素晴らしいものを作ろうという気概を込めています。プロジェクトが開始されて幾多の困難が積み重なりチームが一時期「どん底」状態になった......というのはヒミツです。(笑) BOSSが Build your Own Search Service の略であることを受け、ABYSSも Automated Building Yahoo Search Sdk の略であることも意識しています。

それでは改めてABYSSの概要について説明します。

  • ABYSSは、ヤフーの検索エンジンライブラリをベースにした検索サービス構築プラットフォームです
  • オークションなど一部の大規模なサービスや特殊な検索機能を必要とするサービス以外のサービスについて、素早く検索機能が構築できることを目的にしています
  • Yahoo! JAPANで作られた検索エンジンライブラリをベースにしています。長年利用されていて実績あるものを大幅にバージョンアップさせ、パフォーマンス向上などいくつかの改善が行われています
  • ABYSSは複数のコンポーネント(システム)で構成されています

以下にABYSSの構成を表した全体図を示します。

ABYSSは検索インデックスを構築しABYSSの核となる Index をはじめ、各コンポーネントの制御を行う Workflow やフロントエンドとの仲介を担う Gateway などさまざまなコンポーネントで成り立っています。今回は各コンポーネントの詳細について解説はしませんが、いくつかのコンポーネントにおいてプログラミング言語Erlangや大規模分散処理システムのHadoopなど先進的な技術を積極的に採用しています。

ではABYSSを利用することで何が良くなるのでしょうか。まずサービス側のメリットとして検索機能を実装するコストが大幅に削減され、ほかの機能改善に注力できます。また、検索エンジンのパフォーマンスチューニングなどABYSS自身の改善を行うことで、利用サービス全体に恩恵が受けられます。ハードウエア面においても、各サービスごとに検索用のサーバーを用意することがなく全体的なサーバー台数の削減につながり、昨今のコスト&消費電力削減というエコな流れに一役買います。さらに、ABYSSが多くのサービスで利用されることにより検索データやログが集約され、サービス向上に役立つデータマイニング作業が行いやすくなります。

ABYSSのリリースは今年中を予定しています。ABYSSはあくまでも社内のプラットフォームであり内部技術であるため他サービスのようにプレスリリースを行うわけではなく、また皆さんが直接ABYSSの恩恵を受けるわけではありません。しかし、実はこの新しい検索プラットフォームを社内だけでなく一般の方でも利用できるようにならないか、目下検討を進めています。まだお話しできる段階ではありませんが、今後詳細が決まり次第お伝えしていきたいと思います。

TechBlogでは今後、ABYSSの主要コンポーネントの説明や利用している技術の解説、開発にあたり有用な技術Tipsを提供していく予定です。今後ともYahoo! JAPANの検索技術にご期待ください。

(R&D統括本部 角田 直行)

Yahoo! JAPANでは情報技術を駆使して人々や社会の課題を一緒に解決していける方を募集しています。詳しくは採用情報をご覧ください。

  • このエントリーをはてなブックマークに追加