NEXTSCAPE blog

株式会社ネクストスケープの社員による会社公式ブログです。ネスケラボでは、社員が日頃どのようなことに興味をもっているのか、仕事を通してどのような面白いことに取り組んでいるのかなど、会社や技術に関する情報をマイペースに紹介しています。

MENU

decode:「今さら聞けない! クラウドを使った Search-as-a-Service の活用Azure Search ~Azure Search 全貌~」に参加しました。

検索は、Web サイトの価値を上げるために重要な機能のひとつです。検索精度によって、売上が左右されるサイトも少なくはないでしょう。その一方、日本語を検索というのは、意外と頭の痛い問題でもあります。日本語を適切に処理してくれる検索エンジンってなに?と聞かれても、これです!と言えるものが正直思いつきません。そんな中、ひとつの救いになってくれそうなのが、Azure Search かもしれないと、セッションに参加して思いました。

 

f:id:nextscape_blog:20210909200054p:plain

Azure Search には、サジェスチョンや moreLikeThis などを取得するための API が提供されています。また、検索結果のカテゴリとそこに属する検索結果の件数を表示するためのファセットを取得することができます。これによりよく Web サイトで見かける、一般的な検索ページに表示する、「検索結果のカテゴリ」や「これを見ている人は、こんなコンテンツにも興味があります」といった機能を自前で実装することなく実現することができるようになります。

 
もうひとつ面白い機能として紹介されていたのが、ジオロケーションによる絞込みです。たとえば、
ある緯度・経度から 10 Km 以内にあるもので絞り込むには、以下のように記述します。
geo.distance(location(35.67, 139.70) le 10)
これにより、ユーザーの現在地から近い店舗だけを絞り込むといったシナリオが考えられます。
 
そして気になるのが、日本語の精度ですが、アナライザーとして現在2つ提供されています。ひとつはおなじみの Lucene ですが、もうひとつは Microsoft アナライザーと呼ばれているものです。こちらは、まだパブリック プレビューの状態ですが、Office や Bing でも使われていて、50 言語に対応しているそうです。Bing の検索結果もまだすばらしいとは言いにくい状態ではありますが、今後ますます成長していくことが期待できます。
 
現時点では、カスタム辞書を使うことができないので、自社内で使われている社内用語や、同義語などの定義をカスタムで設定することはできないそうです。一般的な、「コンピューター」「コンピュータ」のような差は語幹変換 (Stemming) として実施されており、また半角・全角のような差も正規化 (Normalization) として実施されているそうです。
 
最後に
これまで、Web サイトの検索エンジンとして、Lucene や Google Custom Search を使用してきましたが、基本的な検索ページに必要な機能が一通り提供されている Azure Search を利用すると、もっと楽に、より適した結果を返すことができるのではないかと思いました。
時間があるときに検証してみたいと思います。