最終更新時刻:2010年12月18日(土) 8時00分

サジェスト検索を影で支えるサーバ技術

第3回では、サジェスト検索の実現手段としてAjaxによる画面制御を取り上げた。今回は、Ajaxの最大の特徴である非同期処理を支えるサーバサイドの処理制御を紹介する。

サジェスト検索におけるサーバサイド処理の要件

サジェスト検索のサーバサイドへの検索要求は非同期に行われる。例えば、次図のような「綺麗に撮った」という文章入力を行っているとき、サーバサイドには、「k」、「きれいに」、「綺麗に」というように、入力の進行状況に合わせて検索キーワードが次々と送信される。

このような非同期、かつ、連続的な検索要求に応えるためには、サーバサイドの検索はどのように行うべきだろうか。サジェスト検索に求められる検索要件は、例えば、次のようなものである。

マルチスレッド
検索要求は非同期・連続的である。この要求に追随するためには、サーバサイド側の処理は、マルチスレッド(複数の要求を同時に処理)で行う必要がある。

レスポンス性能
ユーザのキー入力のスピードに合わせて検索要求を返さなければならない。サジェスト検索において、候補語が表示されるまでに1秒以上待たされると、ユーザはもたつきを感じるだろう。Webブラウザとサーバとの通信が前提となるため、サーバサイドの処理は数十ミリ秒で行う必要がある。

信頼性
業務システム、例えば、数百席規模のコールセンターでサジェスト検索を使う場合を考える。このとき、業務ピーク時のサーバへの検索要求は、瞬間的に同時接続数が100以上となる場合がある。サービスレベルが規定される業務システムでは、このような高負荷状態にあっても、一定の性能水準が求められる。また、業務量の増加に合わせて、サーバはスケールアウト構成がとれることが望ましい。

ひらがな・漢字の両方引き
文章入力からの検索要求であるため、IME(かな漢字変換)の状態によっては、ひらがな(かな漢字変換前で入力が未確定の状態)、漢字(かな漢字変換後で入力が確定した状態)の両方が検索キーワードとなる。サーバは、ひらがな・漢字のどちらの検索キーワードが送られてきても、あるいは、混在して送られてきても、処理を行う事が求められる。この両引き対応は、サジェスト検索の使い勝手に大きく寄与する。

文章の流れに合わせた表示
業務システムでの利用を考えた場合、利用シーンは多岐にわたる。例えば、商品検索・顧客検索、応対履歴入力・業務日報入力などがある。これらの実務に、サジェスト検索を役立たせるには、入力している検索キーワードが主語なのか述語なのか、単語の一部なのか全体なのか、次にくるのは、単語の続きなのか述語なのか等を加味した上で候補語をユーザに表示しなければならない。これも使い勝手に大きく寄与する。

実現方法――テキストマイニングのリアルタイム化

さて、このような検索要求に対するサーバサイドの処理は、どのようになるだろうか。

ここでは、i-lligraサジェストで採用している方法を取り上げて説明する。文章の流れに合わせた候補語表示を行うには、日本語処理の解析技術(テキストマイニングなどで活用される、形態素解析、構文解析、マッチングを行う一連の自然文解析技術)による処理を行う。この処理をマルチスレッドで、数十ミリ秒のオーダーで行うのがサジェスト検索のサーバサイド処理である。次図をみていただきたい。

サーバサイドには、漢字辞書、ふりがな辞書というように2面のインデックス(主語・述語を保持した木構造)がある。この2面インデックスを保持することで、ひらがな・漢字(IME未確定文字・確定文字の混在)の検索を可能にする。

これによって、例えば、検索キーワードとして、「きれいに」が送信されてきた場合、まず、ひらがな辞書をもとに、「きれいに」の子ノード「とった」「しゃしん」を参照して、「撮った」「写真」を候補語として表示できる。

このような2面インデックスによる検索は、速さを実現する手段にもなる。次図を参照いただきたい。これは、i-lligraサジェストにおける100同時接続のレスポンス性能測定結果(PCサーバ1台による)である。

100同時接続においても、スループット:600TPS、平均レスポンスタイム100ミリ秒である。ユーザがもたつきを感じるのが1秒以上とするならば、1台のサーバで十分なレスポンス性能を実現していることがわかる。

サーバ処理の速さが、高ユーザビリティを支える

今回は、サジェスト検索のサーバサイドをみてきた。この処理方式はサジェスト検索の中核技術であり、Ajaxによる画面制御を支えている。Ajaxがユーザへ快適な操作感を提供する裏側では、サーバサイドの検索方式がある。業務システムのユーザビリティを改革していくためには、双方の技術が求められる。

実際の業務シーンでの利用例については、デモサイトをご覧いただきたい。Webサイトやシステムのユーザビリティ改革、業務効率の改善の一助になれば幸いである。

インフォメーション
i-lligraサジェストの体験サイト
サジェスト検索をまずは実感してみてほしい。
i-lligraオンデマンドの紹介サイト
クラウド時代のコンタクトセンター
NTTデータ
変える力を、ともに生み出す。NTTデータグループ
株式会社NTTデータ イントラマート
Webシステム構築の商用フレームワーク製品を提供
提供:株式会社NTTデータ CRMビジネスユニット crmbk@am.nttdata.co.jp
[PR]企画・制作 朝日インタラクティブ株式会社 営業部