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のリストに格納されます。