relevance
2段階
queryにマッチする結果を見つける
それを適切な順序で並べる
queryにマッチする結果を見つける
テキストベースの比較
e.g. typo(誤字の許容)やstop words("the"みたいな単語を無視する)など
非テキストベースの要素
e.g. フィルター、ユーザーの位置情報
それを適切な順序で並べる
queryに一致する結果を見つけてランク付けし、最も一致する結果が上部に表示されるようにする
AlgoliaについてGPT-4.icon
■ Relevanceが悪いときのサイン
ヒットするけど無関係な結果が多すぎる
重要なものが埋もれている
こういう場合は設定の見直しが必要、という合図です。
「最低限」やるべき2つの設定
検索対象にするfieldを絞り込む
例:商品説明文じゃなく商品名だけを検索対象にする
customRankingを設定する
ヒットした中で「売上順に並べる」「新着順に並べる」みたいな独自ルールを作る
---
■ さらに改善できる施策(応用編)
Rules
→ 特別な場合だけルールを上書きできる(例:クリスマス商品を優先表示)
Synonyms(同義語)
→ 違う言葉でも同じ意味と認識させる(例:"ジャンパー"と"ジャケット")
Facets(絞り込み)
→ ユーザーがさらに手動で結果を絞れる
自然言語設定
→ スペルミス耐性とか、多言語対応とか
Personalization
→ ユーザー個別の好みに合わせて結果をカスタマイズする
そして変更後は、
Analyticsで実際の検索ログを見て効果測定
A/Bテストで改善効果を比較
みたいなサイクルを回していきます。