FIND {SearchQuery}
検索は左から右に評価され、Unicode (UTF-8) 文字コードを使用します。テキスト検索は大文字と小文字を区別しません。たとえば、Customer、customer、CUSTOMER の検索はすべて同じ結果を返します。
実行時に評価される特殊な種類のテキスト式 (マクロ、関数、正規表現など) は、FIND 句に含めることはできません。
検索語
- 単語: test や hello など
- 語句: 二重引用符で囲まれた単語と空白 ("john smith" など)
検索エンジンは、検索可能なテキストをより小さい要素 (トークン) に分解し、検索インデックスに保存します。
検索エンジンによって、スペースまたは句読点で区切られたレコード情報が別個のトークンに分割されます。
検索エンジンは形態的トークン化を使用して、中国語、日本語、韓国語、タイ語 (CJKT) などの単語間にスペースを含まない東アジア言語の検索で、正確な検索結果を返します。
例
| インデックス | 検索 |
|---|---|
|
東京都 東京都 |
京都 京都 |
|
東京 東京 |
都 都 |
ワイルドカード
| ワイルドカード | 説明 |
|---|---|
| * |
検索語の途中または末尾で、0 個以上の文字の代わりにアスタリスクを使用できます。たとえば、「太*」を検索すると、「太一」、「太郎」、「太次郎」などの「太」で始まるデータが表示されます。ただし、中国語、日本語、韓国語、またはタイ語で検索する場合は、検索語の中間にアスタリスクまたは疑問符のワイルドカードは使用できません。 単語または語句内のリテラルアスタリスクを検索する場合、アスタリスクをエスケープします ( \ 文字をそれの前に付けます)。 |
| ? |
疑問符は、検索語の途中または末尾にある 1 つのみの文字の代わりに使用できます。たとえば、「jo?n」を検索すると、「john」や「joan」を含むデータが表示されます。ただし、中国語、日本語、韓国語、またはタイ語で検索する場合は、検索語の中間にアスタリスクまたは疑問符のワイルドカードは使用できません。また、検索キーワードの先頭にワイルドカードの疑問符を使用しても機能しません。ルックアップ検索では ? は使用できません。 |
- ワイルドカード検索の条件を絞り込むほど、検索結果はより速く返され、期待する結果が返される可能性が高まります。たとえば、単語 prospect (または複数形 prospects) のすべての発生を検索するには、無関係の一致 ( prosperity など) を返す可能性のある制限のより少ないワイルドカード検索 (prosp* など) を指定するよりも、検索文字列内で prospect* を指定する方がより効率的です。
- 単語のすべてのバリエーションを見つけるために、検索を調整します。たとえば、property と properties を見つけるには、propert* を指定します。
- 句読点にはインデックスを付けます。語句内で * または ? を見つけるためには、検索文字列を引用符で囲む必要があり、特殊文字をエスケープする必要があります。たとえば、"where are you\?" は、語句 where are you? を見つけます。エスケープ文字 (\) は、この検索が正しく機能するために必要です。
演算子
複数の単語を論理演算子およびグルーピング演算子と組み合わせて、より複雑なクエリを作成できます。次の特殊演算子を使用して、テキスト検索を絞り込めます。演算子のサポートでは大文字と小文字を区別しません。
| 演算子 | 説明 |
|---|---|
| " " | 完全に一致する語句を検索するには、検索語を引用符で囲みます。これは、句読点を含むテキストの検索で特に役立ちます。たとえば、"acme.com" は完全に一致するテキスト acme.com を含む項目を検索します。"monday meeting" は完全に一致する語句 monday meeting を含む項目を検索します。 検索結果に語「and」、「or」、「and not」を含めるには、これらの語を二重引用符で囲みます。囲まないと、それぞれ対応する演算子として解釈されます。 |
| AND | すべての検索キーワードに一致するデータを検索します。たとえば、john AND smith は john と smith の両方の単語を含む項目を検索します。多くの場合、演算子が指定されていない場合は AND がデフォルトの演算子です。記事、ドキュメント、およびソリューションを検索する場合は OR がデフォルトの演算子であるため AND は明示的に指定する必要があります。 |
| OR | 検索キーワードを最低 1 つ含むデータを検索します。たとえば、john OR smith は john か smith、またはその両方を含む項目を検索します。 |
| AND NOT | 検索語を含まない項目を検索します。たとえば、john AND NOT smith は単語 john を含み、単語 smith を含まない項目を検索します。 |
| () | 論理演算子と組み合わせた検索語を括弧で囲み、検索語をグループ化します。たとえば、次の検索を実行できます。
|
SearchQuery の文字制限
複数の演算子を組み合わせて 1 つの検索文字列として指定した場合は、次の順序で計算されます。
- 括弧
- AND および AND NOT (右から左に計算されます)
- OR
FIND 句の例
| 検索タイプ | 例 |
|---|---|
| 単語の例 |
FIND {MyProspect} FIND {mylogin@mycompany.com} FIND {FIND} FIND {IN} FIND {RETURNING} FIND {LIMIT} |
| 単一語句 | FIND {John Smith} |
| 単語 OR 単語 | FIND {MyProspect OR MyCompany} |
| 単語 AND 単語 | FIND {MyProspect AND MyCompany} |
| 単語 AND 語句 | FIND {MyProspect AND "John Smith"} |
| 単語 OR 語句 | FIND {MyProspect OR "John Smith"} |
| AND/OR を使用した複雑なクエリ |
FIND {MyProspect AND "John Smith" OR MyCompany} FIND {MyProspect AND ("John Smith" OR MyCompany)} |
| AND NOT を使用した複雑なクエリ | FIND {MyProspect AND NOT MyCompany} |
| ワイルドカード検索 | FIND {My*} |
| エスケープシーケンス | FIND {Why not\?} |
| 無効または不完全な語句 (成功しません) | FIND {"John Smith} |
Apex の FIND 句
-
Apex の場合、FIND 句の値は単一引用符で区画されます。次に例を示します。
1FIND 'map*' IN ALL FIELDS RETURNING Account (Id, Name), Contact, Opportunity, Lead -
Force.com API の場合、FIND 句の値は中括弧で区切られます。次に例を示します。
1FIND {map*} IN ALL FIELDS RETURNING Account (Id, Name), Contact, Opportunity, Lead
Apex での SOSL と SOQL の使用についての詳細は、『Force.com Apex コード開発者ガイド』を参照してください。