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

SOSL の制限

組織の Salesforce データは、最も関連性の高い結果がユーザに返されるように、インデックスが作成され、取得されます。

ただし、ユーザが探しているレコードが検索されるレコードの最大数に含まれない場合、ユーザはアクセス可能なすべての一致結果を見つけることができません。

検索エンジンは、次の順序で SOSL 検索を処理します (リストの番号が下記画像の番号に対応します)。
  1. 検索エンジンは、最大数のレコード内で検索語との一致を探します。
  2. 次に、SOSL は特定の制限をオブジェクトまたは状況に適用します。

    通常、SOSL の制限は SOQL の制限と同じです。API バージョン 28.0 以降では、返される結果の全体の制限が 2,000 件になりました。以前のバージョンでは最大 200 件の結果が返されます。

    この結果セットは、検索を実行するユーザに応じて、また時間の経過と共に変化する可能性があります。
    • ユーザが最近アクセスしたレコードは、検索結果に含まれる可能性が高くなります。
    • インデックスは、ユーザがレコードの削除や作成を行うと 1 日の間に変化する可能性があります。
  3. 管理者 (「すべてのデータの参照」権限を持つユーザ) には、RETURNING 句の指定に従って、返された結果セットのすべてが表示されます。
  4. 個々のユーザには、参照権限を持つレコードのみが表示されます。

切り捨ておよび共有ルールによって、ユーザに表示される結果が制限される可能性があります。

たとえば、上記画像の各雨滴がレコード、各色がオブジェクト、じょうごの外に落ちる 1 つの青い雨滴が取引先レコード「Acme, Inc.」を表すとします。この例では、返される一致レコードの最大数は 21 です (じょうご内に落ちる雨滴の数で表される)。ユーザが「Acme, Inc.」を検索すると、検索エンジンは、一致レコード全体の制限である 21 に達するまで一致を検索しますが、その中には最初の 5 件の取引先レコードしか含まれません。「Acme, Inc.」は検索対象のレコードのセットに含まれないため、検索を行うユーザにそのレコードへのアクセス権があっても、検索結果に含まれません。

外部オブジェクトに関する SOSL の制限

  • 検索できるのは、外部オブジェクトのテキスト、テキストエリア、およびロングテキストエリア項目のみです。外部オブジェクトに検索可能項目がない場合、そのオブジェクトに対する検索ではレコードは返されません。
  • 外部オブジェクトでは、FIND 句内の論理演算子がサポートされません。リモートシステムでは、検索クエリ文字列全体が 1 つの句として受信され、英数字文字以外はすべて削除されます。たとえば、FIND {MyProspect OR “John Smith”} の場合、「MyProspect or John Smith」と完全一致する語句が検索されます。SOSL 検索クエリ文字列を正しく解釈するようにリモートシステムを設定することをお勧めします。リモートシステムにフルテキスト検索インデックスがない場合、検索クエリ文字列は $filter システムクエリオプションの substringof 値として使用されます。以下に例を示します。
    1http://services.example.org/my/data/clients.svc/Prospects?$filter=substringof(‘MyProspect or John Smith’) eq true

    OData $filter システムクエリオプションとその他の URI 規則についての詳細は、http://www.odata.org を参照してください。

  • 外部オブジェクトでは、以下をサポートしていません。
    • INCLUDES 演算子
    • LIKE 演算子
    • EXCLUDES 演算子
    • toLabel() メソッド
  • 外部オブジェクトは、次のような Salesforce ナレッジ固有の句もサポートしていません。
    • UPDATE TRACKING
    • UPDATE VIEWSTAT
    • WITH DATA CATEGORY