本文へスキップ

検索・絞り込み

探す・絞る・見つからないときの立て直し。

探す・絞る・見つからなかったときに立て直す部品のカテゴリ。即時検索と一致ハイライト、フィルタチップ、ファセットの件数再計算、並び替え、最近の検索、グループ分けサジェスト、価格レンジ、検索演算子、そして0件からの立て直しと「もしかして」がある。原則はヒックの法則。選択肢が多いほど決めるのに時間がかかるので、検索と絞り込みの仕事は「候補を減らして見せる」ことにある。ただし減らしすぎて0件にした瞬間に行き止まりになるので、このカテゴリの半分は0件を防ぐ・戻す仕掛けでできている。商品一覧や記事一覧の探しにくさを直すときに引く。

関わる原則: ヒックの法則14件

使い分け語で探すなら instant-search-highlight、属性で絞るなら filter-chips-multi(少数)か faceted-sidebar-counts(多数)、モバイルは filter-drawer-apply。件数は results-count-live で見せ、0件は zero-results-recovery を先に用意する。

まず見る3件

  • 入力

    即時検索+一致ハイライト

    Search Term Highlighting

    入力のたびに記事一覧を絞り込み、一致した文字を <mark> で強調する。件数はライブで更新され、空白区切りの複数語は AND で効く。0件では言い換えを促す。

    • 一致箇所を強調すると「なぜこれが出たか」が説明され、利用者は結果を疑わずに済む
    • 件数は「14件中 3件」と母数つきで出す。母数がないと絞り込めたのか減っただけか分からない
    • 0件の文言には検索語をそのまま返し、次の一手(別の言葉)を添える。行き止まりにしない
  • クリック

    ファセット絞り込み実例あり

    Faceted Navigation

    ブランド・素材・色のチェックボックスで絞り込む。1つ選ぶたびに他のファセットの件数が再計算され、0件になる選択肢は淡色で押せなくなる。PC は左サイドバー、狭い幅は上に積む。

    • 件数の再計算は「他のファセットの条件を掛けた上で、この値を選んだら何件か」。同じファセット内は OR なので自分の条件は掛けない
    • 0件は消さずに淡色で残す。消えると「さっきあった選択肢がどこへ行ったか」を探させてしまう
    • 選択中の条件は結果側の先頭にも出す。サイドバーを見上げなくても、いま何で絞れているかが分かる
  • クリック

    0件の立て直し

    No Results Recovery

    条件を重ねて0件になった検索結果を、行き止まりにしない。「条件を1つ外すと何件になるか」をボタンで示し、押すとその場で結果が出る。近い候補も先に見せる。

    • 0件の画面で一番効くのは「どの条件が効きすぎているか」を数字で見せること。外す前に件数が分かれば迷わない
    • 近い候補は「何が違うか」を添えて出す。黙って似た商品を並べると、条件を無視されたと感じる
    • 検索語は消さずに残す。打ち直しは最後の手段で、まず条件の方を疑ってもらう

使い分け表

パーツ操作技術向く場面状態
即時検索+一致ハイライト
Search Term Highlighting
入力JS記事・FAQ など数十〜数百件の一覧を打ちながら絞る画面・一致した理由を見せたい検索(<mark> で強調)default / hover / focus / empty
複数選択フィルタチップ
Multi-Select Filter Chips
クリックJSEC の商品一覧でカテゴリ・価格帯・在庫を重ねて絞る・群の中は OR・群をまたぐと AND にしたい絞り込みdefault / hover / focus / active / disabled / empty
ファセット絞り込み
Faceted Navigation
クリックJSブランド・素材・色など複数軸で絞る EC の一覧・選ぶたびに他軸の件数を再計算したい検索結果default / hover / focus / disabled / empty
並び替えメニュー
Sort Menu with FLIP Reorder
クリックJS商品カードの並びを価格・評価・新着で切り替える一覧・現在の並び順をボタン文言に常に出したい画面default / hover / focus / active
最近の検索
Recent Searches
入力JS同じ語を繰り返し探す EC・アプリ内検索・入力が空のときに前回の検索を再利用させたい欄default / hover / focus / empty
グループ分けサジェスト
Grouped Search Suggestions
ホバーJS商品・カテゴリ・記事など種類の違う候補を出す検索・行き先(商品ページ/一覧)を候補ごとに示したい欄default / hover / focus / active / empty
0件の立て直し
No Results Recovery
クリックJS条件を重ねた EC 検索が0件になったとき・どの条件を外せば何件かを数字で示したい画面default / hover / focus / empty
価格レンジ+数値入力
Dual-Handle Range with Inputs
ドラッグJS価格帯・面積など数値の上下限で絞る EC・不動産検索・スライダーと数値入力を双方向に同期させたい欄default / focus / active
検索演算子のヒント
Search Operator Tokens
入力JSメール・Issue など from: is: で絞る高度な検索・演算子を覚えさせずに打ち始めで教えたい欄default / hover / focus / active / empty
結果プレビュー付き検索モーダル
Search Dialog with Preview Pane
クリックJS社内ドキュメントなど開く前に中身を確かめたい検索・⌘K で開くコマンド型の検索default / hover / focus / active / empty
モバイルの絞り込みドロワー
Filter Bottom Sheet
クリックJSスマホの EC 一覧で下から出る絞り込みシート・「○件を表示」で押す前に結果の量を見せたい画面default / hover / focus / active / disabled / empty
結果件数のライブ更新
Live Result Count
クリックJS条件を変えるたびに件数を問い合わせる検索フォーム・連続した変更を 300ms のデバウンスで1回にまとめたい画面default / focus / loading / empty
もしかして
Did You Mean
入力JSかな違い・打ち間違いで0件になる記事検索・辞書にある語だけを候補に出したい訂正提案default / hover / focus / empty
保存した絞り込み
Saved Filter Presets
クリックJSSaaS の一覧で同じ絞り込みを繰り返す上級者向け・現在の条件と一致する保存条件を強調したい画面default / hover / focus / active / empty

すべての見本(14件)

  • 入力

    即時検索+一致ハイライト

    Search Term Highlighting

    入力のたびに記事一覧を絞り込み、一致した文字を <mark> で強調する。件数はライブで更新され、空白区切りの複数語は AND で効く。0件では言い換えを促す。

  • クリック

    複数選択フィルタチップ実例あり

    Multi-Select Filter Chips

    カテゴリ・価格帯・在庫のチップで商品を絞り込む。同じ群の中は OR、群をまたぐと AND。各チップに「今押したら何件か」を出し、0件は押せない色にする。

  • クリック

    ファセット絞り込み実例あり

    Faceted Navigation

    ブランド・素材・色のチェックボックスで絞り込む。1つ選ぶたびに他のファセットの件数が再計算され、0件になる選択肢は淡色で押せなくなる。PC は左サイドバー、狭い幅は上に積む。

  • クリック

    並び替えメニュー

    Sort Menu with FLIP Reorder

    「並び替え」ボタンでメニューを開き、価格・評価・新着を選ぶと商品カードが FLIP で滑らかに入れ替わる。ボタンには現在の並びを常に表示する。

  • 入力

    最近の検索

    Recent Searches

    検索欄にフォーカスすると直近の検索語が並ぶ。行の × で1件ずつ消せ、「履歴を消す」で全部消える。Enter で検索すると先頭に追加され、重複はまとめられる。

  • ホバー

    グループ分けサジェスト

    Grouped Search Suggestions

    入力に応じて候補を「商品/カテゴリ/記事」の見出し付きで出す。↑↓ で見出しをまたいで移動し、Enter で確定。何が起きるかは行の右に「商品ページ」「一覧」と示す。

  • クリック

    0件の立て直し

    No Results Recovery

    条件を重ねて0件になった検索結果を、行き止まりにしない。「条件を1つ外すと何件になるか」をボタンで示し、押すとその場で結果が出る。近い候補も先に見せる。

  • ドラッグ

    価格レンジ+数値入力実例あり

    Dual-Handle Range with Inputs

    2つのハンドルと「下限・上限」の数値入力が双方向に連動する価格フィルタ。ドラッグでも直接入力でも同じ値になり、該当件数がその場で更新される。矢印キーでも動く。

  • 入力

    検索演算子のヒント実例あり

    Search Operator Tokens

    メール検索で from: is: before: を打ち始めると演算子のヒントが出て、確定するとチップ(トークン)になる。トークンと本文の語を組み合わせて一覧が絞られる。Gmail 型。

  • クリック

    結果プレビュー付き検索モーダル

    Search Dialog with Preview Pane

    ボタンか ⌘K で検索モーダルを開き、左の結果リストを ↑↓ で辿ると右にプレビューが出る。空のときは「最近開いた」と「おすすめ」。Enter か「開く」で確定、Esc で閉じる。

  • クリック

    モバイルの絞り込みドロワー実例あり

    Filter Bottom Sheet

    スマホの商品一覧で「絞り込み」を押すと下からシートが出る。条件を変えるたびに「○件を表示」ボタンの数字が更新され、押すと閉じて一覧が切り替わる。閉じるだけなら変更は捨てる。

  • クリック

    結果件数のライブ更新

    Live Result Count

    条件を変えると件数がスケルトンになり、少し置いて数字に戻る。連続した変更はデバウンスで1回のリクエストにまとめ、aria-live で件数の変化を読み上げる。右上に変更回数とリクエスト回数を出す。

  • 入力

    もしかして

    Did You Mean

    「ぶらうざ」のようなかな違い・打ち間違いで0件になったとき、辞書との編集距離が近い語を「もしかして: ブラウザ」と提案する。押すとその語で検索し直す。

  • クリック

    保存した絞り込み

    Saved Filter Presets

    いまの絞り込み条件に名前を付けて保存し、チップで呼び出す。現在の条件と一致するチップは強調され、× で削除できる。条件を変えると強調が外れ、保存ボタンが再び現れる。