SOSL の構文
SOSL クエリは、必須の FIND 句で始まります。次に任意の句を追加して、オブジェクト種別、項目、データカテゴリなどによってクエリを絞り込むことができます。返される内容を決定することもできます。たとえば、結果の順序を指定したり、返す行の数を指定したりできます。
必須の FIND 句の後には、1 つ以上の任意の句を次の順序で追加できます。
1FIND {SearchQuery}
2[ IN SearchGroup ]
3[ RETURNING FieldSpec [[ toLabel(fields)] [convertCurrency(Amount)] [FORMAT()]] ]
4[ WITH DivisionFilter ]
5[ WITH DATA CATEGORY DataCategorySpec ]
6[ WITH SNIPPET[(target_length=n)] ]
7[ WITH NETWORK NetworkIdSpec ]
8[ WITH PricebookId ]
9[ WITH METADATA ]
10[ LIMIT n ]
11
12[ UPDATE [TRACKING], [VIEWSTAT] ]各項目は次のとおりです。
| 構文 | 説明 |
|---|---|
| convertCurrency() | 省略可能。組織でマルチ通貨が有効になっている場合、通貨項目をユーザの通貨に換算します。 |
| FIND {SearchQuery} | 必須。検索するテキスト (単語または語句) を指定します。検索クエリは中括弧で囲みます。 SearchQuery 文字列が 10,000 字を超えると、結果行は返されません。SearchQuery が 4,000 文字を超えると、論理演算子はすべて削除されます。たとえば、4,001 文字の SearchQuery を含むステートメント内の AND 演算子は、デフォルトの OR 演算子になるため、予想よりも多くの結果が返される場合があります。 |
| FORMAT() | 省略可能。FIND 句で FORMAT を使用して、標準およびカスタムの数値、日付、時刻、通貨項目にローカライズされた書式を適用できます。FORMAT 関数では別名指定がサポートされます。さらに、クエリに同じ項目が複数回含まれるときは、別名指定が必要です。 |
| IN SearchGroup | 省略可能。検索する項目範囲。次のいずれかの値になります。
|
| LIMIT n | 省略可能。テキストクエリで返される行の最大数を 2,000 以下に指定します。指定されていない場合、返される行の最大数である 2,000 がデフォルトです。この制限は、API バージョン 28.0 以降に適用されます。それ以前のバージョンでは最大 200 行までがサポートされます。 |
| OFFSET n | 省略可能。クエリ結果に大量のレコードが含まれると予想される場合、SOSL クエリに OFFSET 句を使用して結果を複数ページに表示できます。たとえば、OFFSET を使用して 51 ~ 75 番目のレコードを表示した後、スキップして 301 ~ 350 番目のレコードを表示できます。OFFSET を使用すると、大規模な結果セットを効率よく処理できます。 |
| ORDER BY | 省略可能。ORDER BY 句を使用して、返される検���結果の順序を指定します。また、この句を使用して、結果の先頭または最後に空のレコードを表示することもできます。 |
| RETURNING FieldSpec | 省略可能。検索結果で返す情報。1 つ以上のオブジェクトのリスト、および各オブジェクト内の 1 つ以上の項目のリスト (省略可能な絞り込み対象の値を含む)。指定されていない場合、検索結果には見つかったすべてのオブジェクトの ID が含まれます。 |
| toLabel(fields) | 省略可能。クエリの結果がユーザの言語に翻訳されて返されます。 |
| USING ListView= | 1 つの特定のオブジェクトのリストビュー内で検索するために使用される省略可能な句。1 つのリストビューのみを指定できます。ユーザがリストビューに設定した並び替え順に従って、リストビューの最初の 2,000 レコードのみが検索されます。 |
| [ UPDATE [TRACKING | VIEWSTAT][,...]] ] | 省略可能。組織で Salesforce ナレッジを使用する場合、次の処理を行います。
|
| WHERE conditionExpression | 省略可能。デフォルトで、オブジェクトに対する SOSL クエリでは、ユーザに表示されているすべての行が取得されます。検索を限定するために、特定の項目値で検索結果を絞り込みます。 |
| WITH DATA CATEGORY DataCategorySpec | 省略可能。組織で Salesforce ナレッジの記事または回答を使用する場合、1 つ以上のデータカテゴリに基づいてすべての検索結果を絞り込みます。 |
| WITH DivisionFilter | 省略可能。組織でディビジョンを使用する場合、Division 項目の値に基づいてすべての検索結果を絞り込みます。 |
| WITH HIGHLIGHT | 省略可能。特定のオブジェクトの検索結果で、検索語に一致する語を強調表示します。 |
| WITH METADATA = MetadataSpec | 省略可能。応答でメタデータが返されるかどうかを指定します。デフォルト設定は no であり、メタデータは返されません。 |
| WITH NETWORK NetworkIdSpec | 省略可能。検索結果をコミュニティ ID で絞り込みます。 |
| WITH PricebookId | 省略可能。1 つの価格表 ID で商品検索結果を絞り込みます。 |
| WITH SNIPPET [(target_length=n)] | 省略可能。組織で Salesforce ナレッジ記事を使用する場合、コンテキストスニペットを表示し、検索結果で各記事の検索語を強調表示します。デフォルトでは、各スニペットには最大で約 300 文字が表示されます。これは、標準のブラウザウィンドウでは通常 3 行分のテキストに相当します。対象の長さに別の値 (100 ~ 500 文字) を指定するには、target_length パラメータ (省略可能) を追加します。 |
| WITH SPELL_CORRECTION | 省略可能。true に設定すると、スペル修正をサポートする検索のスペル修正が有効になります。false に設定されていると、スペル修正は有効になりません。デフォルト値は true です。 |