現在JavaScriptの設定が無効になっています。このページを利用するにはJavaScriptの設定を有効にしてください。トップ全記事一覧テクノロジー2010.07.15Yahoo!検索アップデートの裏側こんにちは。ヤフー検索の高林@出張中です。先日、ヤフー検索では、13サービスの検索サービスに対してアップデートを行いました。詳しくは、Yahoo!検索スタッフブログの記事「Yahoo!検索をはじめとした検索サービス全体のアップデートを実施しました。今回は、アップデートを行ったサービスの裏側についてご紹介します。お客様がどのサービスで検索しても同じような検索体験ができるように以下のアップデートを行いました。ウェブ検索のページ仕様(各種機能のレイアウトやデザインなど)に準拠し、使い勝手の統一や向上を図りました。ウェブ検索で培われたキーワード入力補助/関連検索ワード/スペルチェックなどを各サービスに導入しました。検索キーワードに対して、関連した他の検索結果(サービス)を提案する機能を搭載しました。検索結果下部に表示されます。検索結果ページを一つのドメインに統一しました。知恵袋の検索結果は"chiebukuro.search.yahoo.co.jp"となります。今回、検索サービス全体のシステムアップデートにあたって、13サービスで開発体制を統一させるために、フレームワークの統一が必要となりました。フレームワークといっても、symfonyやCakePHPの用に大規模なフレームワークではなく、Yahoo!Inc.でも採用されているフロントエンドに必要な部分の実装に特化した、軽量のフレームワークをベースに1つの新しいフレームワークを開発しました。このフレームワークのコードネームを社内では、"Maldives(モルディブ)"と呼んでいます。"Maldives"の名前の由来は、今回のフレームワークを開発したメンバーの中に、本リリース後に"Maldives"に新婚旅行を計画しているというエンジニアがおり、ちょうどコードネーム的にも適していたため、今回のフレームワークのコードネームとして名付けることにしました。"Maldives"の代表的な機能を以下に挙げてみました。Rosettaと呼ばれるテンプレート管理システムを導入したことで、新規サービスを容易に追加できるようにしました。■フェデレーション・サーチ検索処理に必要な各種ワークフローを並列に問い合わせる機能です。設定ファイルにワークフローを定義するだけでシンプルに動作します。限定したお客様に対して、通常とは異なる画面を表示し、結果をフィードバックする機能を実装しました。■ロギング機能のリッチ化ウェブ検索で実験的に導入されていた、お客様の細やかなデータを取得する機能を、フレームワークレイヤで実装しました。■クエリ処理の共通化ウェブ検索の開発で培われたノウハウを活かし、クエリの正規化処理を共通化・最適化することで、検索精度を全体的に向上させています。上と同じく、ウェブ検索の開発で培われたノウハウを活かし、パフォーマンス向上のための各施策をフレームワーク上で実装しています。■Yahoo!Inc製モジュールとの互換性Yahoo!Incのフレームワークをベースとして開発したものであるため、Yahoo!Inc製モジュールとの互換性が大幅に向上しています。今回のフレームワークの機能につきましては、テックブログの記事「『続・ハイパフォーマンスWebサイト』イベントに参加しました」で紹介したトークイベントでもお話させていただいた内容(Yahoo!検索のパフォーマンス向上策全て見せます)がありますのでこちらも一緒にご覧ください。私は、引き続きフレームワークにおける中間サーバ改良を進めていくために、モジュールをどのような構成で実装して行くかを検討するため、現在、Yahoo!incに出張しております。こちらの方も決まり次第テックブログでご紹介したいと思います。最後に、Maldivesに新婚旅行へいってきたエンジニアのお気に入りの写真を一枚。今後も、Yahoo!検索をよろしくお願いします。JAPANでは情報技術を駆使して人々や社会の課題を一緒に解決していける方を募集しています。詳しくは採用情報をご覧ください。JAPANのサービス開発を支える技術やデザイン、文化を発信しています。Reserved.このページの先頭へ。