リクルートの事例を基に、大規模BtoCサービスに求められる検索基盤はどう構築されるものなのか、どんな技術が採用されているのか、運用はどうなっているのかなどについて解説する連載。初回は全体的なアーキテクチャ、採用技術、開発体制について。
カスタマー(消費者)が求めるものが日々変わっていく現在において、BtoCの検索基盤はどうあるべきなのでしょうか。
例えば、リクルートで使われている検索基盤の「Qass(Query analyze search system)」は単に全文検索機能を提供するのではなく、以下を軸としています。
これには、リクルートが提供する全てのサービスの根底には「集客を求めるクライアントと商品を求めるカスタマーをつなぐ」というマッチングビジネスモデルがあるからです(図1)。
「『クライアント』から“情報や商品を集めて”、『カスタマー』に“購買してもらう(動いてもらう)”」を成立させるためには、下記のことが重要です。検索基盤は、そんなマッチングビジネスの中心的な役割を担う重要領域として、リクルートでは位置付けています。
そして外部環境変化を自身の成長モデルに取り込むと同時に、サービスAで得た成果と知見を、サービスBの入力として使う。その反対もしかり。すなわち、リクルートが有する100を超えるサービス間の相互作用によってサービスを成長させる、その源泉となる検索エコシステムを目指しています。それを支えているのがQassなのです。
本連載では、このQassを例にして、大規模BtoCサービスに求められる検索基盤はどう構築されるものなのか、どんな技術が採用されているのか、運用はどうなっているのかなどについて解説していきます。
筆者が所属するリクルートテクノロジーズは、IT・ネットマーケティングテクノロジの開発・提供を通してリクルートグループのサービスを支える機能会社です。リクルートテクノロジーズでは、テクノロジをソリューション単位にまとめてグループ各社に提供しており、本連載で紹介するQassも、その一つです。Qassはリクルートテクノロジーズで開発・運用を行っている成長型検索基盤であり、2014年3月より運用しています。
第1回の今回は、リクルート検索領域の変遷とQassのシステム構成やQassが目指しているもの、そして開発体制などの全体概要を紹介します。
リクルートでは、もともと商用検索エンジンをベースに検索基盤を構築していましたが、環境変化に早期に対応するためには技術力を内部留保することが必須と考え、外部ソリューションを使い続けるよりもオープンソースソフトウエア(以下、OSS)を流用した自社ソリューションを構築することが重要と判断し、「Apache Solr」(以下、Solr)への移行を行いました。
Solrへの移行は社内技術力の向上、およびコスト面で非常に大きな成果を上げましたが、下記のような課題がありました。
新検索基盤は、これらの課題を解決すること、既存サービスへの影響を最小限にすること、そして運用に手間が掛からない自己成長型であることをテーマとして構築し、現在リクルートグループのいくつかのサービスに導入、今後の展開を進めています。
今回構築した新検索基盤では検索のコアエンジンに「Elasticsearch」を採用し、Hadoopによる機械学習を組み合わせることでカスタマーの検索行動に基づいた自己成長型の検索ソリューションを実現し、最適な検索結果に向けて日々改善活動を行っています。
Qassのシステム構成は以下のようになっています。
インフラは自社オンプレとAWS(Amazon Web Services)を組み合わせていて、商品や広告、原稿などの商材に関わる重要なインデックスはオンプレ上に、サジェスト表出用のインデックスはトレンドのリアルタイム反映、負荷分散、レイテンシを考慮してAWS上にストアしています。
また、ElasticsearchにQass独自のプラグインを差し込み、検索クエリを書き換える(Rewrite)などして、アプリケーションの改修なしに検索結果の最適化を図れるようにしています。プラグインはQass独自のクラスローダーによって読み込まれ、Elasticsearchの再起動なしに差し替えられるようにして高頻度のエンハンスを可能にしています。
Elasticsearchを採用したポイントは以下の通りです。
ElasticsearchとHadoop以外の主要な技術要素として以下のものが挙げられますが、これら以外にもChefやRSpec、ServerSpecなどを使用して、属人性を排除した短サイクルでのリリースを実現しています。詳細については後の連載で紹介します。
Copyright © ITmedia, Inc. All Rights Reserved.