Algolia Advent Calendar 2021 の 12月14日の記事です。本番環境に導入を行う際に確認をすべき Implementation Checklist が、Algoliaのドキュメントにありますので、こちらをご紹介させていただきたいと思います。
- Searchable Attributesが設定されている
- Searchable Attributesのほとんどが unordered になっている
- ビジネスメトリクスがCustom Rankingに設定されている
- 本当に必要な場合を除いて、デフォルトのランキングを変更しないこと
- 本当に必要な場合を除いて、Algoliaのエンジンのデフォルト設定値を変更しないこと
- 機密情報を漏らさないようにしよう
- 必要なSynonyms(類義語)を全て追加しよう
- エンドユーザーが使う言語を選択しよう
- 単数形と複数形を同様に扱おう
- Stop wordsを見直そう
- Top 10クエリでテストしよう
- 不十分な結果を確認しよう
- ハイライトが効いているか確認しよう
- ファセットを活用したInstantSearchの実装になっているか確認しよう
- Admin API Keyの扱いに注意しよう
- セキュリティのベストプラクティスに従おう
- モバイルアプリにAPIキーがハードコードされていないことを確認しよう
- 最新版のソフトウェアを使おう
- 検索の入力に対するブラウザのデフォルトの動作はオフにしよう
- ClickとConversionのイベントを実装して検証しよう
- 検索リクエストの利用の最適化をしよう
Searchable Attributesが設定されている
Searchable Attributeのリストの中にある全ての属性が検索に使われることにおいて有用であることを確認しましょう。多くのケースにおいては、Indexの全ての属性が検索対象になっているべきではありませんし、Searchable Attributeの順番はランキングに影響しますので、ベストな情報を持つ属性がリストの上位にあることをチェックしてください。
Searchable Attributesのほとんどが unordered になっている
属性内のキーワードの位置がランキングに影響を及ぼさないようにするためには、属性の設定が unordered になっている必要があります。より前の方にキーワードがあることが重要である場合だけ、orderedを設定するようにしましょう。
ビジネスメトリクスがCustom Rankingに設定されている
Indexに、イイね数 / 再生回数 / 販売数 といったビジネスに関連するメトリクスが反映されていることを確認しましょう。これらのメトリクスによりランキングをカスタマイズすることが可能です。Custom RankingはSearchable Attributesに続いて重要な設定です。これによって検索結果のランキングをコントロールすることができます。
本当に必要な場合を除いて、デフォルトのランキングを変更しないこと
明確な理由がなければ、デフォルトのランキングをお使いください。検証する際に微調整を行うことがあるかもしれませんが、通常は本番環境に反映する前にデフォルトに戻しておくのがベストです。
本当に必要な場合を除いて、Algoliaのエンジンのデフォルト設定値を変更しないこと
Algoliaの検索はout-of-the-box(箱からすぐに出して使える)にデザインされています。つきましては、他に方法が無いような場合を除いて、デフォルトのままの設定でお使いいただくことを推奨しています。特に以下のデフォルト値は本当に必要がない場合を除いて変更すべきではありません。
もし、テストや特定の問題を解決するためにデフォルト値を変更した場合は、その変更が必要でない限り必ず元の値に戻しましょう。
機密情報を漏らさないようにしよう
Algoliaのデフォルトの挙動としては、レコードの全ての属性を画面に表示しないとしても、JSONレスポンスには全ての属性が含まれています。ランキングやその他の目的で活用している属性があった場合に、その情報にエンドユーザーからアクセスされたくない場合は、unretrievableAttributes
を設定するようにしましょう。
必要なSynonyms(類義語)を全て追加しよう
AlgoliaにはDynamic Synonym Suggestionsという機能もありますが、どんなIndexにおいても事前に想定される類義語はあると思います。例えば”ズボン”と”パンツ”といったようなものになりますが、これはせっかくエンドユーザーが検索をしてくれたのに0件ヒットになってしまうクエリを回避するのに役立ちます。
エンドユーザーが使う言語を選択しよう
Indexに登録されていて、エンドユーザーが実際に検索する際に使う言語を設定しましょう。日本語においては indexLanguagesにJapaneseを選択いただきますと、Transliterationが有効になりますので、是非ご活用ください。
単数形と複数形を同様に扱おう
日本語においては、あまり見かけないことかもしれませんが、例えば、”film”(単数形)と”films”(複数形)を同じ意味で検索したい場合があります。設定はコチラをご参考になさってください。
Stop wordsを見直そう
Stop wordsは”of”、”the”、”あの”といったような重要な意味を成さないことのある小さな単語のことを指します。エンドユーザーがこういった単語を使ってクエリを行うような傾向があるのであれば、これらのStop wordsを無視するようにエンジンに設定することができます。
Top 10クエリでテストしよう
Top 10クエリのテストを行い、Analyticsのメトリクスを参照しながら納得行く結果が得られているかどうか確認しましょう。
不十分な結果を確認しよう
検索結果が不十分または満足度の低いものになっていないかどうか確認しましょう。
ハイライトが効いているか確認しよう
ハイライトが検索結果のマッチした部分に効いているか確認しましょう。
ファセットを活用したInstantSearchの実装になっているか確認しよう
キーをタイプするたびに、検索結果が迅速に表示されるようにします。ここでは”エンターキー”は必要ありません。フロントエンドにとても便利なファセットを設定するようにしましょう。
Admin API Keyの扱いに注意しよう
フロントエンドのコードにAdmin Api Keyは決して使わないでください。
セキュリティのベストプラクティスに従おう
セキュリティのベストプラクティスを意識して、はじめる前、もしくは、はじめた後に考慮できていなかったセキュリティ対策が存在しないことを確認しましょう。
モバイルアプリにAPIキーがハードコードされていないことを確認しよう
モバイルアプリにおいてAPIキーが適切に使われていることを確認しましょう。
最新版のソフトウェアを使おう
Algoliaのライブラリが最新であることを確認しましょう。
検索の入力に対するブラウザのデフォルトの動作はオフにしよう
Webベースのアプリケーションに検索バーを実装する場合は、検索入力のガイドに記載されているようなHTML入力属性を適用して、ブラウザのデフォルトの動作をオーバーライドするようにしましょう。
ClickとConversionのイベントを実装して検証しよう
AlgoliaのAnalyticsを最大限に活用するために、イベント情報を送信して、それが正しく送信されているかどうかを確認しましょう。
検索リクエストの利用の最適化をしよう
検索リクエストごとに行われるAlgoliaへのコースは課金されますので、Federated Searchなどを正しく使って実装が最適化されていることを確認しましょう。
コメント