FacebookのGraph Searchを支える検索バックエンド「Unicorn」とは?:エンティティ間の関係をベースに検索
米Facebookが1月に発表した新しい検索サービス「Graph Search」のインフラ開発担当者が、これを支えるインフラ「Unicorn」についてブログで解説した。
米Facebookが1月に発表した新しい検索サービス「Graph Search」(グラフ検索)は、同社の社内で開発した「Unicorn」というインフラに支えられているという。Graph Searchのインフラ開発担当者が3月6日のブログで明らかにした。
Graph Searchは人物やスポット、場所、関心事にスポットを当てた検索サービスで、自然言語を使ったフレーズの組み合わせによる検索を特徴とする。ブログによると、Facebookでの検索の取り組みは、キーワードベースの検索「PPS」から始まって、2009年には検索用語の入力途中で候補を表示する「Typeahead」に着手し、2010年にTypeaheadの刷新版をスタートさせた。
PPSとTypeaheadがメタデータ(主に名称)をベースとしてユーザー、ページ、場所、出来事といったFacebookのエンティティを検索するのに対し、Graph Searchではこの機能を拡張して、エンティティ間の関係をベースとする検索を目指した。
しかしGraph Searchでは非常に大きなインデックスの構築が必要になることが判明し、スケールに対応でき、複数の検索バックエンドをサポートできるインフラを探す必要に迫られた。そこでこれを機に、開発とメンテナンスの効率性を高める目的で、単一の検索バックエンドに移行することにしたという。
「Unicorn」と呼ばれる転置インデックスシステムの構築プロジェクトは、2009年からFacebook社内に存在していた。2010年までにはエンティティに与えられた属性の組み合わせを検索するためのインメモリ「データベース」として、Unicornは社内で多くのプロジェクトに採用されるようになる。
FacebookはGraph Search構築に向けた第1歩として2011年、このUnicornを検索エンジンとして拡張し、既存の検索バックエンドを全てUnicornに移行させることを決めた。
Unicornはインデックスを格納するソフトウェアであると同時に、そのインデックスを構築するシステムと、インデックスから情報を引き出すシステムを兼ねている。Facebookに新たに加わるコンテンツは1日当たり25億以上、「いいね!」は27億を超す。Unicornのインデックスには静的データのインデックスに加えて、こうした更新情報も継続的に取り込まれ、ユーザーが加えた変更は数秒以内にインデックス化されるという。
「Unicornの開発とGraph Searchのローンチによって、Graph全体のインデックスを支える統合型システムが出来上がった」と開発チームは説明している。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Facebook、「Graph Search」の限定β開始
米Facebookは1月15日、友人が自分と共有したコンテンツや公開設定のコンテンツを検索できる新サービス「Graph Search(グラフ検索)」の限定β版の提供を開始した。 - 基礎から分かる、Facebookアプリの作り方
- solidDB登場でますます熱くなるインメモリデータベース