Azure Search のシナリオと機能
このポストは、8 月 28 日に投稿した Azure Search Scenarios and Capabilities の翻訳です。
先週 Azure Search の発表 (英語) がありましたが、それに続いてこの記事では、Azure Search を開発した理由と、現在の機能を取り入れた経緯について説明します。
* 訳注: Azure Search は現在のところ日本語での検索には対応しておりません。
背景
検索機能は、数多くのアプリケーションでユーザーの主要な操作手法として活用されており、特に全文検索機能には大きな期待が寄せられています。ユーザーは、普段から Web 検索エンジン、高度な e コマース Web サイト、関連性の高い検索結果を提供するソーシャル アプリケーション、入力時の検索候補、ファセット ナビゲーション、強調表示などのさまざまな機能を、ほぼタイム ラグなしで使用しています。
マイクロソフトは Azure Search の開発にあたって、検索に関する専門的な知識のない開発者でも優れた検索エクスペリエンスをアプリケーションに組み込むことができるようにしたいと考えました。強固な検索エクスペリエンスの実現は、テキスト分析やランキングの処理が必要な情報取得用フロントエンドや、スケーラビリティや信頼性を管理する必要のある配信システムのフロントエンドのいずれにおいても課題となります。そこで、サービスとしての検索機能を提供することで、これらの課題を自然な形で解決し、開発者がアプリケーションの構築に集中できるようにすることを目指しました。
シナリオ
検索テクノロジを活用すると多様な課題を解決できますが、マイクロソフトでは、一貫性のある機能セットに重点的に取り組めるように、特定の対象シナリオを設定して開発を開始しました。もちろん、Azure Search は他にもさまざまな用途に使用できますが、これらのシナリオが原点となって、下記のサービスに対応した機能セットを採用することになりました。
オンライン販売および e コマース: e コマースのアプリケーションやサイトのユーザーのほとんどが、最初に検索機能で商品を探します。商品カタログにはインデックスが設けられ、展開するとタグ、説明、ユーザーからの意見などが表示されることもあります。このシナリオの特徴は、星による評価、価格/手数料、キャンペーンなどを考慮したきめ細かいランキング モデルであるという点です。検索エクスペリエンスには、多くの場合ファセット ナビゲーション (カテゴリごとの総数) やフィルター、さまざまな並び替えオプションなどの機能が含まれます。また、頻繁に更新が行われるという特徴もあります。商品カタログの更新頻度は低くても、商品価格、在庫状況、どのアイテムが販売中かなどの属性は 1 日のうちに何度も変わる場合があり、検索結果に迅速に反映される必要があります。
e コマースと最新のモバイル アプリケーションを検索機能でつないでいる実例として、AutoTrader.ca が挙げられます。Trader Corporation テクノロジ担当 VP を務める Allen Wales 氏は、このサイトについて次のように語っています。「autoTRADER.ca は、カナダ最大規模の新車・中古車販売マーケットプレースです。このマーケットプレースはモバイル デバイスからの利用へと大規模な転換を行っており、現在は半数を超えるユーザーが PC からではなくモバイル デバイスからアクセスしています。弊社のモバイル アプリは、カナダの自動車購入者の皆様に 200 万回以上ダウンロードしていただいています。モバイル ユーザーの皆様は、PC から Web サイトにアクセスされる従来のユーザーよりも訪問頻度が高く、検索を行う回数も多くなっています。こうした検索機能の負荷の高まりを受けて、スケーリング可能な検索エンジンが必要となったのです。」
ユーザー作成コンテンツおよびソーシャル コンテンツ: ユーザー作成コンテンツ アプリケーションにはいろいろなものがありますが、検索機能の要件については、ほとんどのアプリケーションで似通っています。この種のアプリケーションにはレシピ サイト、写真共有サイト、ユーザー投稿型のニュース サイト、Web とモバイルでプレゼンス通知機能があるソーシャル ネットワーク アプリケーションなどがあり、その特徴として大容量のドキュメントを処理するという点が挙げられます。特にユーザーがコメントを付けたりアイテムについて議論したりできる場合は、数百万のドキュメントを扱うこともあります。また、人や物事に関する場所を示す地理空間データが含まれることもよくあります。検索の関連性には、ドキュメントの鮮度や作成者の人気などのドメイン固有の要素のほか、テキスト統計が影響します。
その好例が、ユーザーがパノラマ画像や “Synth” をキャプチャ、共有する Photosynth というサイトです。このサイトでは、既に Azure Search がキーワード検索 (英語) および地理空間エクスペリエンス (英語) の両方で活用されています。Azure Search は、ユーザーから投稿されたすべてのアセットに対して、タイトルやタグ (キーワード検索用)、地理位置情報 (境界ボックス クエリ用) を含むインデックスを作成します。
ビジネス アプリケーション: 基幹業務アプリケーションのユーザーは、事前定義済みのメニューやその他の構造化されたアクセス経路からコンテンツに移動するのが一般的です。しかし、検索機能がこのアプリケーションに組み込まれると、一般ユーザーの操作の負担が大幅に軽減され、情報を取得するときの時間短縮や効率化に役立つ場合があります。この種のアプリケーションにはさまざまな種類のエンティティがあり、それぞれが組み合わされて検索されることで単一のエントリ ポイントを提供し、システム全体にわたるコンテンツを発見するしくみになっています。
これらのシナリオのいずれでも、多くの場合、エンドポイントはモバイル デバイスと Web サイトに混在し、最新のアプリケーションのほとんどがその両方を対象としているか、両者を明確に区別していません。Azure Search は、クライアントからの直接の使用と、各種アプリケーションをサポートしているバックエンドからの使用の両方に対応するように設計されています。
機能
以下に、Azure Search の機能を簡単にまとめました。これらの詳細については、サービスのドキュメントや今後のこのブログの記事をお読みください。ここでは、この記事でご紹介したシナリオに関する機能の概要のみを説明します。
- シンプルな HTTP および JSON の API。あらゆるプラットフォームやデバイスからアクセス可能です。
- キーワード、フレーズ、およびプレフィックスの各種検索。クエリ言語に関する知識がなくても、ユーザーは検索対象を指定できます。単に単語をいくつか指定するほかに、必要に応じて “+”、“-”、引用符、アスタリスク (プレフィックス検索の場合) を使用することも可能です。
- 検索結果の強調表示。フォーラム内や長いドキュメントなどの分量の多いテキストで検索操作を支援します。
- ファセット検索。ほとんどの e コマース Web サイトと同様に、カテゴリごとのヒット数を計算します。
- 候補の表示。オート コンプリート実装時に構成要素として使用可能です。ユーザーが Enter キーを押す前に的確な検索のためのガイドを提供します。
- リッチな構造化クエリ。構造化されたフィルター、並べ替え、ページング、およびプロジェクションと検索機能を組み合わせることで、アプリケーション定義の制限や表示オプションを実現できます。
- フィルタリング、並べ替え、スコアリング機能を統合した地理空間情報のサポート。
- プロファイルのスコアリング。鮮度や距離のほか、人気度や星による評価などの数値の大きさといった要素から関連性のモデリングを簡単に実行できます。
- 弾力的なスケーラビリティ。API や Azure 管理ポータルから、パーティション (処理可能なドキュメント数) またはレプリカ (1 秒間あたりのクエリ処理数や可用性) に関してサービスのスケールアップ/スケールダウンが可能です。なお、その際に他の可用性が影響を受けることはありません。
マイクロソフトでは早期導入プログラムを実施して、開発チームが採用した機能が実世界のシナリオで実際に有効かどうかを検証しました。そのときの Jones Lang LaSalle (JLL) のコメントをご紹介します。JLL のイノベーション担当ディレクターである Sridhar Potineni 氏は次のように述べています。
「JLL は、商用不動産や投資マネージメントの分野に特化した金融および専門サービスを世界規模で提供しています。多数のお客様に対応可能な弊社のアプリケーションは、強力な検索機能を備え、1 秒あたり数十回のクエリ処理数 (QPS) を実現できるスケールにまで拡大することが可能です。Azure Search はクラウド ベースのマネージド サービスであるため、検索機能を持つアプリケーションを新たに世界中に展開するのも迅速に行え、ユーザーのレイテンシを短縮することができます。
Azure Search は、ファセット ナビゲーション、クエリ補完、地理空間情報の検索、そして特にポリゴン検索のような、弊社が従来から使用しているオンプレミス検索ソリューションの機能を完全に網羅しています。ポリゴン検索は “物件情報検索” などのアプリケーションに必須の機能で、さまざまな地理的区分で物件を迅速に検索することが可能です。弊社ではこれらの機能を活用して需要を拡大し、数万件の管理資産へのお問い合せ数の向上を図っています。」
この機会に、Azure Search を皆様にご利用いただけることを願っております。フィードバックや特定のトピックに関するご意見がありましたら、お気軽にお寄せください。またこちらのページ (英語) から実際にお試しのうえ、ご意見をいただけますと幸いです。