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. 実務判断フロー

以下で判断すると迷わない:

  1. 検索条件は明確か?
     YES → SOQL
     NO → SOSL

  2. 複数オブジェクト横断か?
     YES → SOSL

  3. ユーザー入力ベースか?
     YES → SOSL


8. ハイブリッド設計(上級者)

実務では組み合わせることも多い:

・SOSLで候補取得
・SOQLで詳細取得

これにより、精度とパフォーマンスを両立できます。


まとめ

SOQLとSOSLは「どちらが優れているか」ではなく、「用途が違う」だけです。

正しく使い分けることで、
・高速な検索
・使いやすいUI
・スケーラブルな設計

を実現できます。

迷ったら「条件か?キーワードか?」で判断する。
これだけで大きく間違うことはなくなります。