コンテンツにスキップ

検索画面パターン

例:案件・プロジェクト管理システム

大量のデータから条件を指定して検索・管理する。

適用する原則: 画面名は「何を見ているか」で名付ける

  • 案件数が多い(数千件)
  • 様々な条件で絞り込みたい
  • よく使う検索条件がある

典型の画面遷移

GET /projects 案件一覧
GET /projects/search 検索画面
POST /projects/search 検索実行 → 検索結果画面へ
GET /projects/search/results 検索結果一覧
  • 検索条件が15項目以上
  • 「検索画面」と「検索結果」が別画面
  • よく使う検索条件を毎回入力
  • 条件を変えるたびに画面遷移

再設計の画面遷移

GET /projects 案件一覧(フィルタ内蔵)
GET /projects?q=...&status=... フィルタ適用(URL直接)
  • インクリメンタル検索: 入力と同時に絞り込み
  • スマートフィルタ: よく使う3条件だけ表示、詳細は展開
  • 保存済み検索: よく使う条件をワンクリックで適用
  • URLで状態保持: 検索条件がURLに反映、共有可能

画面遷移の比較

観点典型再設計
画面数3画面1画面
検索条件15項目表示3項目 + 展開
結果表示画面遷移後リアルタイム
条件変更検索画面に戻るその場で変更
条件保存なし保存済み検索

すべての条件を表示する必要はない。利用ログを見て、実際に使われている条件を把握する。

よく使う条件(常に表示):
- キーワード
- ステータス
- 担当者
たまに使う条件(展開時に表示):
- 期間
- 金額範囲
- カテゴリ
ほぼ使わない条件(廃止を検討):
- 作成者
- 更新日
[自分の案件] → status=active & assignee=me
[今月受注] → status=won & date=this_month
[要対応] → status=pending & priority=high
[フォロー中] → tag=follow_up

ユーザーが自分でよく使う条件を保存できるようにすると、検索画面自体が不要になることが多い。