Salesforce技術ブログ(グローバル検索についてまとめてみた)
こんにちは!前Dです。
Saleforceのグローバル検索、便利ですよね。
でも、思うように検索結果が返ってこない、ということありませんか?
または、「ん?何でこれが検索結果でHITするんだ?」とか。
と、いう訳でグローバル検索の動きについてまとめてみました。
★グローバル検索についてまとめてみた
1.グローバル検索のルール
●まずはグローバル検索の基本的なルールから。
- ・全角のみの文字列は1語として扱われる
- ・英字のみの文字列は1語として扱われる
- ・数字のみの文字列は1語として扱われる
- ・数字と英字など、複数の文字種類が混在した場合は、それぞれ連続している文字種類で1単語として扱われる。
→例えば…
検索語が「AA0099」の場合→「AA」と「0099」
検索語が「AA00CD」の場合→「AA」と「00」と「CD」 - ・検索キーワードは2文字以上指定する必要がある。
●グローバル検索対象のオブジェクト等はこんな感じです。
カテゴリ | 可能な検索 | 不可能な検索 | 備考 |
対象オブジェクト | タブ化しているオブジェクト | タブ化していないオブジェクト | |
参照可能な項目 |
テキスト テキストエリア ロングテキストエリア リッチテキストエリア 数値 通貨 電話 |
数式 参照関係の値 選択リスト 日付 |
画面非表示の項目も検索対象となる |
ワイルドカードを使用した検索 |
中間一致 前方一致 |
後方一致 英数字記号等混在 |
2.実際に検索してみよう
○例1○
あるオブジェクトのテキスト項目に「001919」というデータがある場合、グローバル検索を行うと以下の様な感じになります。
「001919」→検索される
「0*1919」→検索される
「*01919」→検索されない(※後方一致では「*」は使用できない)
「*1919」→検索されない(※後方一致では「*」は使用できない)
「1919」→検索されない(※「1919」で開始するデータを検索する)
○例2○
あるオブジェクトのテキスト項目に「A01919」というデータがある場合、グローバル検索を行うと以下の様な感じになります。
「A01919」→検索される
「*01919」→検索される(※「A」と「01919」が別単語の扱いとなるため、検索される)
「A*1919」→検索されない(※この場合のワイルドカードは英字のものを検索しにいく)
「1919」→検索されない(※「1919」で開始するデータを検索する)
○例3○
あるオブジェクトのテキスト項目に「ABCD1919」というデータがある場合、グローバル検索を行うと以下の様な感じなります。
「ABCD1919」→検索される
「AB」→検索されない(英単語部分が「AB」であるデータを検索しに行く(この場合は、ABCDで1単語とみなされるため検索されない)
「AB*」→検索される
「*BC*」→検索されない(後方一致がされないため、英字部分が「BC」で始まるデータを検索しにいく)
「AB*D」→検索される
「*1919」→検索される
文字種類で単語を区切って検索をかけているのがグローバル検索の特色ですね。
ちなみに、このグローバル検索のルールはSOSLにも適用されます。
グローバル検索については、以下も参照ください。
検索機能を利用した情報の検索(Salesforceヘルプ)
Salesforce Classic での検索の制限(Salesforceヘルプ)
グローバル検索でレコードが見つからない(Salesforceナレッジ)