Apex SOSLを使ってオブジェクトに対してキーワード検索を行う方法

環境
Salesforce

構文
・FIND 検索キーワード IN ALL FIELDS RETURNING 検索対象オブジェクト名(取得項目)
・FIND 検索キーワード IN ALL FIELDS RETURNING 検索対象オブジェクト名1(取得項目,検索対象オブジェクト名2(取得項目

注意事項
1.SOQLとSOSLはガバナ制限が異なります。
SOQL実行回数→1トランザクションにつき、100回
SOSL実行回数→1トランザクションにつき、20回

2.SOSLはグローバル検索と同じ仕組みとなります。
1文字の検索は不可
検索するカラムが指定できない

使用例
searchWord変数に画面から入力した条件が設定され、Cft__cオブジェクトに対してキーワード検索を行います。

サンプルコード

 public class SOSLExample {
    public List<Cft__c> cftList {get;set;}
    public String searchWord {get;set;}    // 画面から入力した検索条件
    public void exampleSoslExec(){
        String sql = ‘FIND ‘*’ + searchWord + ‘*’ IN ALL FIELDS RETURNING Cft__c(Id, Name)’;
        List<List<sObject>> resList = search.query(sql);
        cftList = resList[0]:
    }
}

実行結果
検索結果はネストしたsObjectのリストに格納されます。

Apex

Posted by arkgame