LoginSignup
0
0

More than 1 year has passed since last update.

SOSL(Salesforce Object Search Language)でマッチする電話番号入力を確認しました

Last updated at Posted at 2022-09-22

概要

Salesforce Object Search Language (SOSL) で電話番号フィールドを条件に検索することができます。
電話番号は 031234567803-1234-5678 などのように、表記揺れが出やすい項目ですが、なんとなくあいまいでもマッチする感触がありました。

いくつか登録して簡易的に検証してみた結果を記録します。

確認環境

  • Developer Edition Winter ’23
  • API Version 55

確認手順

テストデータを登録

取引先責任者(Contact)レコードを登録します。

  • 数字のみ
  • ハイフン区切り
  • 全角数字のみ
  • 全角ハイフン区切り
  • 市外局番をカッコ括り+ハイフン区切り
  • E.164フォーマット

image.png

テスト用コード作成

検索文字列を数字のみとして、取引先責任者オブジェクトの電話番号フィールドを対象にSOSLクエリし、マッチ結果を出力する内容です。

String phoneNumber = '0312345678';
List<List<SObject>> searchList = [
    FIND :phoneNumber IN PHONE FIELDS
    RETURNING Contact (Id, Name, Phone ORDER BY Name)];

List<Contact> contacts = searchList[0];

For (Contact contact: contacts) {
    System.debug(contact.Name + '/' + contact.Phone);
}

実行

開発者コンソールで実行し、出力ログを確認します。
なんと全部マッチしました。

image.png

他のパターン

検索文字列を ハイフン区切りの 03-1234-5678 としても上記と同じ結果でした。
検索文字列を E.164フォーマットの +81312345678 とすると、E.164フォーマットの1レコードのみマッチしました。

最後に

ハイフン区切りぐらいはマッチすると思っていましたが、E.164フォーマットの登録でもマッチするのは少し驚きました。
どのようなマッチングロジックなのでしょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0