SOSL について
Salesforce Object Search Language (SOSL) を使用して、検索インデックスにテキストベースの検索クエリを作成できます。
次の環境では、カスタムオブジェクトも含め、アクセス権のある複数のオブジェクトのテキスト、メール、電話項目を 1 つのクエリで検索できます。
- SOAP コールまたは REST コール
- Apex ステートメント
- Visualforce コントローラと getter メソッド
- Eclipse Toolkit の Schema Explorer
SOSL と SOQL の比較
次の場合に SOQL を使用します。
- 組織のデータベースに対して検索する。データベース検索の結果に、検索文字列と正確に一致するものが含まれる。
- データの保存先のオブジェクトまたは項目がわかっている。
- 次を実行する場合:
- 1 つのオブジェクト、または相互に関連する複数のオブジェクトからデータを取得する
- 指定した条件を満たすレコード数を数える
- クエリの一部として結果を並び替える
- 数値、日付、またはチェックボックス項目からデータを取得する
次の場合に SOSL を使用します。
- データの保存先のオブジェクトまたは項目が不明であるため、最も効率的かつ迅速な方法で確認したい。
- 次を実行する場合:
- 項目内に存在することがわかっている、特定用語のデータを取得する。SOSL では項目内の複数の用語をトークン化して、そこから検索インデックスを構築できるため、SOSL 検索でより速く、より多くの関連結果を返すことができます。SOSL 検索では、検索オブジェクトに応じて、障害一致、シノニム、見出語化、スペルチェックなど、検索インデックスの高度な機能も活用できます。
- 相互に関連している、または関連していない複数のオブジェクトおよび項目を効率的に取得する。
- ディビジョン機能を使用して、組織の特定のディビジョンのデータを最も効率的な方法で取得する。
効率的な SOSL テキスト検索の定義
検索内容が一般的すぎると、検索に時間がかかり膨大な結果が返されます。次の句を使用して対象を絞り込み、より有益な検索を作成してください。
- IN: メール、名前、電話など、検索する項目の種別を制限します。
- LIMIT: 返す行の最大数を指定します。
- OFFSET: 検索結果を複数のページに表示します。
- RETURNING: 返すオブジェクトと項目を制限します。
- WITH DATA CATEGORY: 返すデータカテゴリを指定します。
- WITH DivisionFilter: 返すディビジョン項目を指定します。
- WITH NETWORK: 返すコミュニティ ID を指定します。
- WITH PricebookId: 返す価格表 ID を指定します。