Skip to main content

SOSL

The lib main class for query construction.

Methods

The following are methods for SOSL.

FIND

IN

RETURNING

WITH

LIMIT

UPDATE

FIELD-LEVEL SECURITY

SHARING MODE

DEBUGGING

RESULT

FIND

Signature

SOSL find(String searchText)

Example

FIND 'MySearch'
IN ALL FIELDS
SOSL.find('MySearch').inAllFields().toSearchList();

IN

inAllFields

Signature

SOSL inAllFields()

Example

FIND 'MySearch'
IN ALL FIELDS
SOSL.find('MySearch').inAllFields().toSearchList();

inNameFields

Signature

SOSL inNameFields()

Example

FIND 'MySearch'
IN NAME FIELDS
SOSL.find('MySearch').inNameFields().toSearchList();

inEmailFields

Signature

SOSL inEmailFields()

Example

FIND 'MySearch'
IN EMAIL FIELDS
SOSL.find('MySearch').inEmailFields().toSearchList();

inPhoneFields

Signature

SOSL inPhoneFields()

Example

FIND 'MySearch'
IN PHONE FIELDS
SOSL.find('MySearch').inPhoneFields().toSearchList();

inSidebarFields

Signature

SOSL inSidebarFields()

Example

FIND 'MySearch'
IN SIDEBAR FIELDS
SOSL.find('MySearch').inSidebarFields().toSearchList();

RETURNING

For more details check RETURNING API.

Signature

FIND 'MySearch'
IN ALL FIELDS
RETURNING Account

Example

SOSL.find('MySearch')
.inAllFields()
.returning(
SOQL.Returning(Account.SObjectType)
)
.toSearchList();

WITH

withDivision

Signature

ISearchable withDivision(String division);

Example

FIND 'MySearch'
IN ALL FIELDS
RETURNING Account
WITH DIVISION = 'Global'
SOSL.find('MySearch')
.inAllFields()
.returning(
SOQL.Returning(Account.SObjectType)
)
.withDivision('Global')
.toSearchList();

withHighlight

ISearchable withHighlight();

Example

FIND 'MySearch'
IN ALL FIELDS
RETURNING Account
WITH HIGHTLIGHT
SOSL.find('MySearch')
.inAllFields()
.returning(
SOQL.Returning(Account.SObjectType)
)
.withHighlight()
.toSearchList();

withSnippet

ISearchable withSnippet(Integer targetLength);

Example

FIND 'MySearch'
IN ALL FIELDS
RETURNING Account
WITH SNIPPET (target_length=120)
SOSL.find('MySearch')
.inAllFields()
.returning(
SOQL.Returning(Account.SObjectType)
)
.withSnippet(120)
.toSearchList();

withNetworkEqual

ISearchable withNetworkEqual(Id networkId);

Example

FIND 'MySearch'
IN ALL FIELDS
RETURNING Account
WITH NETWORK = 'networkdId'
SOSL.find('MySearch')
.inAllFields()
.returning(
SOQL.Returning(Account.SObjectType)
)
.withNetworkEqual('networkId')
.toSearchList();

withNetworkIn

ISearchable withNetworkIn(Iterable<Id> networkIds);

Example

FIND 'MySearch'
IN ALL FIELDS
RETURNING Account
WITH NETWORK IN ('networkdId')
SOSL.find('MySearch')
.inAllFields()
.returning(
SOQL.Returning(Account.SObjectType)
)
.withNetworkIn(new List<Id>{ 'networkId' })
.toSearchList();

withPriceBookId

ISearchable withPriceBookId(Id priceBookId);

Example

FIND 'MySearch'
IN ALL FIELDS
RETURNING Account
WITH PricebookId = 'pricebookId'
SOSL.find('MySearch')
.inAllFields()
.returning(
SOQL.Returning(Account.SObjectType)
)
.withPriceBookId('pricebookId')
.toSearchList();

withMetadata

ISearchable withMetadata(String metadata);

Example

FIND 'MySearch'
IN ALL FIELDS
RETURNING Account
WITH METADATA = 'LABELS'
SOSL.find('MySearch')
.inAllFields()
.returning(
SOQL.Returning(Account.SObjectType)
)
.withMetadata('LABELS')
.toSearchList();

withSpellCorrection

ISearchable withSpellCorrection();

Example

FIND 'MySearch'
IN ALL FIELDS
RETURNING Account
WITH SPELL_CORRECTION
SOSL.find('MySearch')
.inAllFields()
.returning(
SOQL.Returning(Account.SObjectType)
)
.withSpellCorrection()
.toSearchList();

withoutSpellCorrection

ISearchable withoutSpellCorrection();

Example

FIND 'MySearch'
IN ALL FIELDS
RETURNING Account
WITH SPELL_CORRECTION = false
SOSL.find('MySearch')
.inAllFields()
.returning(
SOQL.Returning(Account.SObjectType)
)
.withoutSpellCorrection()
.toSearchList();

LIMIT

setLimit

Signature

ISearchable setLimit(Integer amount);

Example

FIND 'MySearch'
IN ALL FIELDS
RETURNING Account
LIMIT 100
SOSL.find('MySearch')
.inAllFields()
.returning(
SOQL.Returning(Account.SObjectType)
)
.setLimit(100)
.toSearchList();

UPDATE

updateViewStat

Signature

ISearchable updateViewStat();

Example

FIND 'MySearch'
IN ALL FIELDS
RETURNING Account
UPDATE VIEWSTAT
SOSL.find('MySearch')
.inAllFields()
.returning(
SOQL.Returning(Account.SObjectType)
)
.updateViewStat()
.toSearchList();

updateTracking

Signature

ISearchable updateTracking();

Example

FIND 'MySearch'
IN ALL FIELDS
RETURNING Account
UPDATE TRACKING
SOSL.find('MySearch')
.inAllFields()
.returning(
SOQL.Returning(Account.SObjectType)
)
.updateTracking()
.toSearchList();

FIELD-LEVEL SECURITY

AccessLevel Class

By default AccessLevel is set as USER_MODE.

More details you can find in here

systemMode

Execution mode in which the the object and field-level permissions of the current user are ignored, and the record sharing rules are controlled by the class sharing keywords.

Signature

ISearchable systemMode();

Example

SOSL.find('MySearch')
.inAllFields()
.returning(
SOQL.Returning(Account.SObjectType)
)
.systemMode()
.toSearchList();

SHARING MODE

Using the with sharing, without sharing, and inherited sharing Keywords

More details you can find in here.

withSharing

Execute query with sharing.

Note! System mode needs to be enabled by .systemMode().

Signature

ISearchable withSharing();

Example

SOSL.find('MySearch')
.inAllFields()
.returning(
SOQL.Returning(Account.SObjectType)
)
.systemMode()
.withSharing()
.toSearchList();

withoutSharing

Execute query without sharing.

Note! System mode needs to be enabled by .systemMode().

Signature

ISearchable withoutSharing()

Example

SOSL.find('MySearch')
.inAllFields()
.returning(
SOQL.Returning(Account.SObjectType)
)
.systemMode()
.withoutSharing()
.toSearchList();

MOCKING

mockId

Query needs unique id that allows for mocking.

Signature

SOSL mockId(String queryIdentifier)

Example

SOSL.find(SEARCH_TEXT)
.inAllFields()
.returning(
SOSL.returning(Account.SObjectType)
)
.mockId('MockingExample')
.toSearchList();

// In Unit Test
List<SObject> testAccounts = new List<Account>{ new Account(Name = 'Mock') };
SOSL.setMock('MockingExample', new List<List<SObject>>{ testAccounts });

DEBUGGING

preview

Signature

ISearchable preview();

Example

SOSL.find('MySearch')
.inAllFields()
.returning(
SOQL.Returning(Account.SObjectType)
)
.toSearchResult();

SOSL preview will be available in debug logs:

============ SOSL Preview ============
FIND 'MySearch'
IN ALL FIELDS
RETURNING Account
=======================================

RESULT

toSearchList

List<List<SObject>> toSearchList();

Example

List<List<SObject>> searchList = SOSL.find('MySearch')
.inAllFields()
.returning(
SOQL.Returning(Account.SObjectType)
)
.toSearchList();

toSearchResult

Signature

Search.SearchResults toSearchResult();

Example

Search.SearchResults searchResults = SOSL.find('MySearch')
.inAllFields()
.returning(
SOQL.Returning(Account.SObjectType)
)
.toSearchResult();