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