Skip to content


Search by Phone Number

There are two types of phone number search, fuzzy and partial. The difference is in the way the input is permuted prior to search. In general, fuzzy search returns more results, but partial search returns results that are closer to what the user entered. Let's illustrate from an example. Suppose the user enters 408-555-1234. In either search, non-numeric characters are stripped first.

Partial Search: 4085551234 is searched in the database for all records that have phone numbers that end in 4085551234. This includes entities with phone numbers such as 4085551234, 1-4085551234, 123-4085551234, etc.

Fuzzy Search: 4085551234 is permuted first by stripping 1-6 digits from the beginning of the sequence. If the resulting sequence is less than 6 digits long, it is dropped from the search. In this case, the search string set is 4085551234, 085551234, 85551234, 5551234, 551234. Any records in the database where the phone number ends in the string set is returned. The query results form fuzzy match includes results from the partial search and many more ambiguous results. For example, records with phone number such as 5105551234 would also be returned.

To designate the type of phone number search, specify the "match" field when entering the phone number in the search request body. E.g.,

{ "phone_number": { "value": "5551234", "match": "partial" } }

Match scheme is partial if the input string is 6 digits or fewer. For an input string 7 digits or more, the default behavior is fuzzy search if a match scheme is not specified.