function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
KolliKolli 

Dynamic SOSL with multiple search terms not returning records with email or phone number

I am facing couple of challenges with Dynamic SOSL.
Records are available with "test.abc1@test.digital or test.abc@test.com" and "(123) 456-7890"(based on locale).

we are using Dynamic SOSL query with multiple search terms and asterisk match (*)

Email field not working with :-

1)searchTerm ="@test.digital*"
2)searchTerm ="abc1*"
3)searchTerm ="abc1@test.digital*" or searchTerm =".abc1@test.digital*"

Phone number not working with :-

1)searchTerm ="890*"
2)searchTerm ="23)4*"
3)searchTerm ="67890*"

***We ant fetch records with any character from email field and any number from Phone number field.*** 

we tried multiple ways suggested by salesforce i.e. 
https://developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/soql_sosl/sforce_api_calls_sosl_find.htm

Code :-
SearchCaseByMultipleId(string searchText){
        String searchTerms = '(';
        for(string str : searchText.split(',')){
            if(str.length()>0){
               searchTerms  = searchTerms+' "' +str +'*'+'" '+'OR';
            }else{                
            }           
        }
        searchTerms = searchTerms.removeEnd('OR');
        searchTerms = searchTerms+')';
       string finalQuery = 'FIND :searchTerms IN ALL FIELDS RETURNING '+objectName+'(' + quryFields +' 
         ORDER BY CreatedDate DESC NULLS last)';
       list<list<Sobject>> results = search.query(finalQuery);
}
search term looks like :- ("@test.digital*" OR "abc1*").

is there any other way for my requirement or is something missing? 
ShirishaShirisha (Salesforce Developers) 
Hi,

Greetings!

You need to include the field names based on the Object for example:
 
FIND 'SFDC' IN ALL FIELDS 
                                      RETURNING Account(Name), Contact(FirstName,LastName)
I would suggest you to first try by using the direct values and then try with the binding variable.

Kindly mark it as best answer if it helps so that it can help others in the future.

Warm Regards,
Shirisha Pathuri
 
KolliKolli
Hi Sirisha,

Thanks for reply.

Fields are included in the dynamic query with variable of  "queryfields".
Also we tried in both ways direct values and binded values but not getting the records.