Azure Search の検索候補の機能強化を発表
このポストは、1 月 23 日に投稿された Announcing New Enhancements to Azure Search Suggestions の翻訳です。
「検索候補」は、アプリケーションにオートコンプリート機能を実装するために使用する構成要素です。一部のシナリオでは、ユーザーが検索要求を実行する前に、存在する可能性がある候補を選択できるようにする機能として、重要な要素となります。
Azure では、Azure Search に最初に検索候補 (オートコンプリート) の機能を導入した際、前方一致を採用しました。たとえば、検索候補が有効になっているフィールドに「the quick brown fox jumps over the lazy dog」という文字列があるとき、入力された文字列が「the」、「the qu」、「the quick brown fox」などの場合にはこの候補が表示されますが、「quick brown fox」や「lazy dog」といった場合には、候補として表示されません。これでは検索候補の結果としては不十分だというご意見が多数寄せられました。
皆様からのフィードバックの内容をまとめると、以下のようになります。
- 検索候補クエリで前方一致しか利用できず、部分一致を利用できない (これが圧倒的に多いフィードバックでした)。
- 1 回につき最大 10 件の候補しか表示されないというのは、一部のシナリオでは少なすぎる。
- 表示される候補の文字数が最大 25 文字しかない (さらに長い文字列を表示したい場合もある、という声が寄せられました)。
- 検索候補の結果が返されるには、最低でも 3 文字は入力する必要がある。
部分一致とあいまい一致
これらすべてのニーズに応えるために、まったく新しい検索候補機能が運用環境に実装されました。特に、部分一致を利用できるようになったことで、ユーザーが「brown fo」と入力した場合にも「the quick brown fox jumps…」という検索候補が返されるようになりました (ただし、単語の区切りで一致する必要があり、単語の途中の文字列が一致しても候補として表示されません)。また、あいまい一致により、スペルが間違っている場合でも柔軟に対応して候補が返されます。さらに、1 回につき最大 100 件の候補が表示され、フィールドの制限以外の文字数制限が撤廃され、最低 3 文字入力が必要という制約もなくなりました。現時点では、バージョン 2014-10-20-Preview (英語) が試験版として提供されており、引き続きフィードバックの収集と機能の調整を行っています。
以前の検索候補の API では、フィールド定義の suggestions オプションをブール値で指定していました。この方法はわかりやすくはあったものの、拡張する余地がありませんでした (たとえば、使用する一致方法を指定することができません)。現在、検索候補の API を強化しており、今後はさらに多くの機能を追加してまいります。インデックスには、名前と検索モードを定義する suggester プロパティのコレクションが追加されました (これにより、近いうちに新しい API で前方一致の検索候補機能を利用できるようになります)。最初に導入される検索候補機能では、ドキュメント内のフィールドから検索候補が取得され、部分一致を利用できます。
suggester プロパティを含む新しいインデックス定義は、以下のようになります。
{
fields: [
{ "name": "id", "type": "Edm.String", "key": true },
{ "name": "title", "type": "Edm.String" }
],
suggesters: [
{ "name": "sg", "searchMode": "analyzingInfixMatching", "sourceFields": ["title"] }
]
}
検索候補要求に使用する場合は、次のように suggester を参照する必要があります (必ず検索テキストを URL エンコードしてください)。
次のステップ
この機能強化をお試しいただくには、ブログ記事「Azure Search: 検索アプリケーションに検索候補 (オートコンプリート) を追加する方法」のチュートリアルをご覧ください。
suggester のすべてのオプションの詳細については、API 2014-10-20-Preview のドキュメント (英語) をご覧ください。
suggester プロパティを使用するには、新しいフィールドを追加して新しい suggester にバインドするか、新しいインデックスを作成する必要があります。既存のインデックスの既存のフィールドにバインドされた suggester を追加することはできません。
検索候補をご利用の方は、お時間のあるときにぜひこの新機能をお試しください。皆様からのフィードバック (英語) をお待ちしております。
筆者へのご意見、ご感想は、筆者のブログ (英語) または Twitter アカウントまでお寄せください。
Azure Search – How to Add Suggestions (auto-complete) to your Search Applications |