SOQL vs SOSLの使い分け完全ガイド:現場で迷わない検索設計
Salesforce開発において、必ずと言っていいほど悩むのが「SOQLとSOSL、どっちを使うべきか」という問題です。どちらもデータ検索のための言語ですが、用途を間違えるとパフォーマンス低下や使いにくいシステムの原因になります。
本記事では、実務で迷わないための判断基準を、具体例とともに解説します。
1. 結論:まずはこれだけ覚える
シンプルに言うと以下です:
・正確に条件指定 → SOQL
・キーワード検索 → SOSL
迷ったらこのルールでほぼOKです。
2. SOQLとは
SOQLは「条件検索」に強い言語です。
例:
SELECT Id, Name
FROM Account
WHERE Industry = 'IT'
特徴:
・構造化データに強い
・フィルタ条件が明確
・リレーション取得可能
3. SOSLとは
SOSLは「全文検索」に特化した言語です。
例:
FIND 'エラー'
IN ALL FIELDS
RETURNING Case(Id, Subject)
特徴:
・複数オブジェクト検索
・曖昧検索に強い
・高速
4. 使い分けの具体例
■ ケース①:顧客一覧を取得
👉 SOQL
理由:条件が明確(業種・地域など)
■ ケース②:サイト内検索
👉 SOSL
理由:ユーザーはキーワードで検索する
■ ケース③:ナレッジ検索
👉 SOSL
理由:全文検索が必要
■ ケース④:特定レコード取得
👉 SOQL
理由:IDや条件が決まっている
5. パフォーマンスの違い
SOQL:
・インデックスを使う
・条件一致に最適
SOSL:
・検索インデックス使用
・大量データでも高速
👉 LIKE検索はNG(SOSL使うべき)
6. よくある間違い
■ LIKEで検索を作る
WHERE Name LIKE '%test%'
→ 遅い・非効率
👉 SOSLを使うべき
■ SOSLで単一検索
→ オーバースペック
👉 SOQLで十分
7. 実務判断フロー
以下で判断すると迷わない:
検索条件は明確か?
YES → SOQL
NO → SOSL複数オブジェクト横断か?
YES → SOSLユーザー入力ベースか?
YES → SOSL
8. ハイブリッド設計(上級者)
実務では組み合わせることも多い:
・SOSLで候補取得
・SOQLで詳細取得
これにより、精度とパフォーマンスを両立できます。
まとめ
SOQLとSOSLは「どちらが優れているか」ではなく、「用途が違う」だけです。
正しく使い分けることで、
・高速な検索
・使いやすいUI
・スケーラブルな設計
を実現できます。
迷ったら「条件か?キーワードか?」で判断する。
これだけで大きく間違うことはなくなります。
