この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

FIND {SearchQuery}

FIND 句 (必須) では、検索する単語または語句を指定できます。検索クエリには次が含まれます。
  • 検索するリテラルテキスト (単語または語句)
  • ワイルドカード (省略可能)
  • グルーピングの括弧を含む論理演算子 (省略可能)

検索は左から右に評価され、Unicode (UTF-8) 文字コードを使用します。テキスト検索は大文字と小文字を区別しません。たとえば、Customercustomer、または CUSTOMER の検索はすべて同じ結果を返します。

実行時に評価される特殊な種類のテキスト式 (マクロ、関数、または正規表現など) は、FIND 句では使用できません。

SearchQuery は中括弧で区切る必要があります。この処理は、テキスト検索で検索式を他の句と明確に区別するために必要です。

メモ

単語と語句

SearchQuery には 2 種類のテキストが含まれます。

  • 単語: testhello などの単語。SearchQuery 内の単語は、空白、句読点、および文字と数字の境界で区切られます。単語は常に大文字と小文字を区別しません。

    中国語、日本語、および韓国語 (CJK) では、単語は CJK タイプの文字のペアでも区切られます。たとえば、日本語の文字列「東京都知事」は、東京京都都知知事の 4 つのバイグラムとしてトークン化されます。この使用方法のコンテキストでは、ユーザが「京都」を検索する場合、探しているのは「京都」であり、「東京都」ではありません。ただし、検索結果では「東京都」が返されます。

    メモ

  • 語句: "john smith" などの、二重引用符で囲まれた単語と空白の集合。複数の単語を論理およびグルーピング演算子と組み合わせて、より複雑なクエリを作成できます。特定のキーワード (「and」、「or」、および「and not」) を検索する場合、これらのキーワードを二重引用符で囲む必要があります。二重引用符で囲まない場合はそれぞれ対応する演算子として解釈されます。

ワイルドカード

検索内のテキストパターンと一致させるために、次のワイルドカード文字を指定できます。
ワイルドカード 説明
* 検索語の途中または末尾で、0 個以上の文字の代わりにアスタリスクを使用できます。標準ルックアップ検索を実行する場合以外は、検索語の先頭にアスタリスクを使用しないでください。たとえば、「太*」を検索すると、「太一」、「太郎」、「太次郎」などの「」で始まるデータが表示されます。ただし、中国語、日本語、韓国語、またはタイ語で検索する場合は、検索語の中間にアスタリスクまたは疑問符のワイルドカードは使用できません。単語または語句内のリテラルアスタリスクを検索する場合、アスタリスクをエスケープします ( \ 文字をそれの前に付けます)。
? 疑問符は、検索語の途中または末尾 (先頭ではない) にある 1 つのみの文字の代わりに使用できます。たとえば、「jo?n」を検索すると、「john」や「joan」を含むデータが表示されます。ただし、中国語、日本語、韓国語、またはタイ語で検索する場合は、検索語の中間にアスタリスクまたは疑問符のワイルドカードは使用できません。また、検索キーワードの先頭にワイルドカードの疑問符を使用しても機能しません。
ワイルドカードを使用する場合には、以下の点に注意してください。
  • ワイルドカードは先行する文字の種類を表します。たとえば、「aa*a」は「aaaa」と「aabcda」に一致しますが、「aa2a」や「aa.!//a」には一致せず、「p?n」は「pin」と「pan」には一致しますが、「p1n」や「p!n」には一致しません。同様に、「1?3」は「123」と「143」には一致しますが、「1a3」や「1b3」には一致しません。
  • ワイルドカード (*) は、中国語、日本語、韓国語、タイ語 (CJKT) での検索で、完全に一致する語句の検索を除いて、1 つの文字の最後に追加されます。
  • ワイルドカード検索の条件を絞り込むほど、検索結果はより速く返され、期待する結果が返される可能性が高まります。たとえば、単語 prospect (または複数形 prospects) のすべての発生を検索するには、無関係の一致 ( prosperity など) を返す可能性のある制限のより少ないワイルドカード検索 (prosp* など) を指定するよりも、検索文字列内で prospect* を指定する方がより効率的です。
  • 単語のすべてのバリエーションを見つけるために、検索を調整します。たとえば、propertyproperties を見つけるには、propert* を指定します。
  • 句読点にはインデックスを付けます。語句内で * または ? を見つけるためには、検索文字列を引用符で囲む必要があり、特殊文字をエスケープする必要があります。たとえば、"where are you\?" は、語句 where are you? を見つけます。エスケープ文字 (\) は、この検索が正しく機能するために必要です。

演算子

次の特殊演算子を使用して、テキスト検索を絞り込めます。演算子のサポートでは大文字と小文字を区別しません。

演算子 説明
" " 完全に一致する語句を検索するには、検索語を引用符で囲みます。これは、句読点を含むテキストの検索で特に役立ちます。たとえば、"acme.com" は完全に一致するテキスト acme.com を含む項目を検索します。"monday meeting" は完全に一致する語句 monday meeting を含む項目を検索します。
AND すべての検索キーワードに一致するデータを検索します。たとえば、john AND smithjohnsmith の両方の単語を含む項目を検索します。多くの場合、演算子が指定されていない場合は AND がデフォルトの演算子です。記事、ドキュメント、およびソリューションを検索する場合は OR がデフォルトの演算子であるため AND は明示的に指定する必要があります。大文字と小文字は区別されません。
OR 検索キーワードを最低 1 つ含むデータを検索します。たとえば、john OR smithjohnsmith、またはその両方を含む項目を検索します。大文字と小文字は区別されません。
AND NOT 検索語を含まない項目を検索します。たとえば、john AND NOT smith は単語 john を含み、単語 smith を含まない項目を検索します。大文字と小文字は区別されません。
() 論理演算子と組み合わせた検索語を括弧で囲み、検索語をグループ化します。たとえば、次の検索を実行できます。
  • ("Bob" and "Jones") OR ("Sally" and "Smith"): Bob Jones または Sally Smith を検索します。
  • ("Bob") and ("Jones" OR "Thomas") and Sally Smith: Bob Jones と Sally Smith、または Bob Thomas と Sally Smith を含むドキュメントを検索します。

SearchQuery の文字制限

SearchQuery 文字列が 10,000 字を超えると、結果行は返されません。SearchQuery が 4,000 文字を超えると、論理演算子はすべて削除されます。たとえば、4,001 文字の SearchQuery を含むステートメント内の AND 演算子は、デフォルトの OR 演算子になるため、予想よりも多くの結果が返される場合があります。

検索順序

複数の演算子を組み合わせて 1 つの検索文字列として指定した場合は、次の順序で計算されます。
  1. () (丸括弧)
  2. AND および AND NOT (右から左に計算されます)
  3. OR
次の例は、検索文字列がどう計算されるかを示します。
検索文字列 同等の検索 検出されるデータに含まれる単語
東京都 AND 中央区 AND NOT ミーティング 東京都 AND (中央区 AND NOT ミーティング) 東京都中央区 はあるが、ミーティングはない
東京都 AND NOT 中央区 AND ミーティング 東京都 AND NOT (中央区 AND ミーティング) 東京都はあるが、中央区ミーティングは両方ともない
東京都 AND 中央区 OR ミーティング (東京都 AND 中央区) OR ミーティング 東京都中央区があるデータと、ミーティングがあるデータ
東京都 AND (中央区 OR ミーティング) 東京都 AND (中央区 OR ミーティング) 東京都中央区があるデータと、東京都ミーティングがあるデータ

予約文字

次の文字が予約されています。
1? & | ! { } [ ] ( ) ^ ~ * : \ " ' + -

テキスト検索で指定された場合に適切に解釈されるように、予約文字をエスケープする (前にバックスラッシュ \ 文字を付ける) 必要があります。予約文字の前にバックスラッシュを付けないと、エラーが発生します。これは SearchQuery を二重引用符で囲んだ場合にも該当します。

たとえば、次のテキストを検索するとします。

1{1+1}:2

各予約文字の前にバックスラッシュを挿入します。

1\{1\+1\}\:2

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 句

ApexFIND 句の構文は、SOAP APIFIND 句の構文とは異なります。
  • 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 コード開発者ガイド』を参照してください。