Salesforce Developer Soql Versus Sosl
SOQL abbreviates for Salesforce Object Query Language. SOQL is similar to the
SELECT statement in SQL, but is designed specifically for Salesforce.
Use SOQL when you know which objects the data resides, and we want to:
1. Retrieve data from a single object or from multiple objects that are related
to one another.
2. Count the number of records that meet specific criteria.
3. Sort results as part of the query.
4. Retrieve data from number, date, or checkbox fields
SOSL abbreviate for Salesforce Object Search Language. It is a full-text search
language.
Use SOSL when we do not need to know which objects or fields the data reside in,
and we want to:
1. Retrieve data for a specific term that we know exists within a field.
Because SOSL can tokenize multiple terms within a field and build a search
index from this, SOSL search are faster and can return more relevant results.
2. Retrieve multiple objects and fields efficiently where the objects might or
might not be related to one another.
3. Retrieve data for a particular division in an organization using the division
feature.
4. Retrieve data that is in Chinese, Japanese, Korean, or Thai. Morphological
tokenization for CJKT terms.
Both SOQL WHERE filters and SOSL search queries can specify text we want to look
for. When we can use either language for a given search, SOSL is generally
faster than SOQL if the search expression uses a CONTAINS term.
SOSL can tokenize multiple terms within a field (for example, multiple words
separated by spaces) and build a search index. If we are searching for a
specific term that we know exists within a field, we might find SOSL is faster
than SOQL. For example, we might use SOSL if we were searching for John against
fields that contains values like "Paul and John Company"
Keep the number of fields to be searched to a minimum. Using a large number of
fields leads to a large number of permutations, which can be difficult to tune.
page revision: 3, last edited: 29 Jan 2017 06:51