SOSL入門ガイド:Salesforce検索を最適化する第一歩
Salesforceでデータ検索を行う際、多くの開発者がまずSOQLを学びます。しかし、実務で「キーワード検索」を実装しようとすると、SOQLだけでは限界があります。そこで登場するのがSOSL(Salesforce Object Search Language)です。
本記事では、SOSLの基本から実践的な使い方まで、初心者向けに分かりやすく解説します。
1. SOSLとは何か
SOSLは、複数オブジェクト・複数フィールドを横断して検索できる言語です。
SOQLとの違い:
・SOQL → データベース検索(条件一致)
・SOSL → 全文検索(キーワードベース)
簡単に言うと、
👉 「曖昧検索したいならSOSL」
2. 基本構文
FIND '検索キーワード'
IN ALL FIELDS
RETURNING Account(Name), Contact(Name, Email)
構成はシンプルです:
・FIND → 検索キーワード
・IN → 検索対象範囲
・RETURNING → 取得するオブジェクト
3. 検索対象の指定
■ ALL FIELDS
全フィールド検索(基本これ)
■ NAME FIELDS
名前系フィールドのみ
■ EMAIL FIELDS
メール系フィールド
例:
FIND '山田'
IN NAME FIELDS
RETURNING Contact(Name)
4. 複数オブジェクト検索
SOSLの強みはこれ。
FIND 'エラー'
IN ALL FIELDS
RETURNING Case(Id, Subject), Knowledge__kav(Title)
→ 1回の検索で複数データ取得
5. Apexでの使い方
List<List<SObject>> results = [
FIND :keyword
IN ALL FIELDS
RETURNING Account(Name), Contact(Name)
];
List<Account> accounts = (List<Account>)results[0];
List<Contact> contacts = (List<Contact>)results[1];
ポイント:
・戻り値は「二重リスト」
・順番はRETURNING順
6. 実務での使いどころ
■ ナレッジ検索
→ FAQ検索に最適
■ グローバル検索機能
→ サイト内検索
■ ケースサポート
→ 類似問い合わせ検索
7. よくあるミス
■ SOQLで無理に検索する
→ パフォーマンス悪化
■ 結果の扱いミス
→ List<List
■ キーワード未加工
→ ユーザー入力そのまま使用は危険
8. パフォーマンスのポイント
・検索対象を絞る
・RETURNINGでフィールド最小化
・LIMITを使う
例:
FIND 'ログイン'
IN ALL FIELDS
RETURNING Knowledge__kav(Title LIMIT 10)
9. SOQLとの使い分け
| 用途 | 推奨 |
|---|---|
| 完全一致検索 | SOQL |
| キーワード検索 | SOSL |
| 単一オブジェクト | SOQL |
| 横断検索 | SOSL |
まとめ
SOSLは「検索体験」を作るための必須スキルです。
SOQLだけでは実現できない“ユーザー視点の検索”を可能にします。
最初はシンプルに使い、徐々に最適化していくことで、実務レベルの検索機能を構築できるようになります。F
