Amazon CloudSearchの日本語対応サジェスト機能で「もしかして」を試す

AWS

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

サジェスト(Suggesters)とは

YoutubeやAmazonショッピングサイトで一部のキーワードを入力すると候補が挙がってきて選ぶことができます。これがサジェスト機能です。CloudSearchには標準でこの機能が付いていますので試してみました。

Youtube

screenshot 2014-04-27 15.54.39

Amazonショッピング

screenshot 2014-04-27 15.55.11

サジェストの指定

設定の仕方は簡単です。ドメインの設定画面で、サジェストの追加をします。

screenshot 2014-04-27 15.43.15

検索してみる

サジェスト指定しましたので検索してみましょう。部分文字列を入力します。すると、候補が現れました!

screenshot 2014-04-28 22.18.09

日本語のサジェスト

日本語で検索キーワードを入力する際、ひらがなやカタカナだったり、半角や全角だったり、ローマ字だったりと、様々な入れ方があるかと思います。そんなときに活躍するのが日本語に対応したサジェストです。CloudSearchではイイ感じに対応してくれています

ひらがなで入力

screenshot 2014-04-29 20.42.17

カタカタで入力

screenshot 2014-04-29 20.42.28

半角ローマ字で入力

screenshot 2014-04-29 20.42.44

全角ローマ字で入力

screenshot 2014-04-29 20.42.53

かな漢字変換中

screenshot 2014-04-29 20.44.36

もしかして(FuzzyMatching)

Googleで検索をしていると、もしかして◎◎?と入力間違い等を正してくれることがあります。非常にありがたい機能です。CloudSearchも同じことができます。やってみましょう。サジェストの設定画面でFuzzy Matchingの項目があります。デフォルトではnoneです。Lowにすると1文字間違いを指摘してくれます。Highにすると2文字間違いまで指摘してくれます。ためしにHighにしてみました。

screenshot 2014-04-29 21.24.52

たしかに2文字間違いまで考えて候補を挙げてくれましたね。

サジェストのソート(SortExpression)

サジェストのデフォルトでソートが指定されていませんのでマッチした順番に表示されていきます。ここでソートの順番を指定することができます。例えば、以下はデフォルト設定で検索した場合です。

screenshot 2014-04-28 22.18.09

次に、サジェストのソート部分をageにしてみます。これで年齢順に出てきます。

screenshot 2014-04-29 19.18.25

適応した後の検索結果です。確かにage順になっていました。

screenshot 2014-04-29 19.15.14

まとめ

サジェストの順番を工夫することで、より利用者が選びやすくする候補を列挙することができますね。例えば、人気度や評価点などのあるフィールドの値が高いドキュメント上位候補にするなどです。ソート順の計算には式や関数を用いることができますので色々やってみてください。ひとつ注意点としては、_socreは使えません。_scoreは検索結果のスコアを表すのですが、サジェストは検索前なのでスコアが出ないということかな。_scoreが使えるのは検索結果のソートとなります。

参考資料

Getting Autocomplete Suggestions in Amazon CloudSearch