検索の仕組み
「なぜこの商品がヒットするのか」「なぜヒットしないのか」を説明します。
まるっと検索は前方一致でも部分文字列一致でもありません。日本語を語として切り出し、 表記の違いを吸収したうえで照合します。
1. 正規化 — 表記の揺れを消す
照合の前に、検索語と商品テキストの両方へ同じ変換をかけます。
| 変換 | 例 |
|---|---|
| NFKC正規化 | WD650 → wd650 |
| 大文字・小文字 | WD650 → wd650 |
| 全角・半角スペース | 連続空白を1つに |
| 旧字体の統合 | 髙 → 高、﨑 → 崎、澤 → 沢 |
旧字体は17文字を統合しています(髙﨑澤齋齊國櫻眞壽廣榮濵濱邊邉德)。人名や 屋号を含む商品で効きます。「髙島屋」と「高島屋」を書き分けているカタログでも、 どちらで検索してもヒットします。
2. 形態素解析 — 日本語を語に切る
日本語は単語の間に空白がありません。まるっと検索は形態素解析器(lindera + IPADIC、 辞書はアプリに同梱)で文を語に切ってから索引します。
「春夏用リネンワンピース」 → 春夏 / 用 / リネン / ワンピースそのため 「ワンピース」で検索すると「春夏用リネンワンピース」がヒットします。 前方一致の検索では出ません。
3. 読みの変換 — 打ち方の違いを吸収する
同じ語を違う打ち方で入力しても届きます。
| 入力 | ヒットする商品名 | レスポンスの applied_transforms |
|---|---|---|
りんご | リンゴジュース | kana |
リンゴ | りんごジャム | kana |
ringo | りんごジュース | romaji |
わんぴーす | ワンピース | katakana |
設定は不要です。 同義語の登録もしていない状態で効きます。
同義語辞書との違い。 ここまでの1〜3は同義語ではありません。文字と読みの 変換なので、登録なしで最初から働きます。「Tシャツ」と「カットソー」のような 意味の言い換えは変換では届かないため、そちらは同義語として登録します (→ 管理画面でできる調整)。
4. 品番・型番・SKU
品番は語に切らず、そのまま照合します。
- 完全一致は上位に固定されます
- 途中まで入力しても候補に出ます(
wd650→WD650DR) - 全角で
WD650と打っても半角の品番に届きます - SKU・バーコードも検索対象です
既知の制限。 ハイフン区切りの品番を途中まで入力した場合 (
TOKYO-MUGでTOKYO-MUG-REDを探す)は、日本語解析器の都合で0件になることが あります。ハイフンを含まない品番では起きません。
5. タイプミスの補正
入力に誤りがあっても、近い語に寄せて探します。レスポンスの applied_transforms に typo が入ります。
ただし補正は最後の手段です。正しく一致する商品があるときは、そちらが優先されます。
6. 並び順
sort=relevance(既定)のとき、次の要素で順位が決まります。
- 一致した場所 — 商品名での一致は、説明文での一致より強く効きます
- 一致の質 — 完全一致 > 語の一致 > 読みの変換を経た一致 > タイプミス補正
- 売れ行き・クリック — 同じくらい一致している商品同士の並びに影響します
- マーチャントの設定 — ブースト・ピン留め(→ 管理画面でできる調整)
順位の内訳(スコア)は返しません。 検索精度の改善のたびに変わるためです。 公開すると改善のたびに御社の実装が壊れることになります。順位を制御したい場合は 管理画面のブースト・ピン留めをお使いください。
price_asc / price_desc / newest を指定した場合は、関連度ではなく指定した順に 並びます。
7. 検索対象
| 対象 | 含まれるもの |
|---|---|
| 商品 | 商品名・説明文・ベンダー・商品タイプ・タグ |
| 商品(Pro) | 上記+メタフィールド・バリエーション・レビュー |
| 記事・ページ | タイトル・本文 |
下書き・非公開の商品は索引しません。 検索結果に出るのは、ストアフロントで 実際に購入できる状態の商品だけです。
次に読む: 索引の同期 — 商品を追加したとき、いつ検索に出るか