setAdvancedSyntax method
AdvancedSyntax
Enables the advanced query syntax.
This advanced syntax brings two additional features:
-
Phrase query: a specific sequence of terms that must be matched next to one another. A phrase query needs to be surrounded by double quotes ('). For example, the query 'search engine' only returns a record if it contains “search engine” exactly in at least one attribute.
-
Note: Typo tolerance is disabled inside the phrase (i.e. within the quotes).
-
Prohibit operator: excludes records that contain a specific term. To exclude a term, you need to prefix it with a minus (-). The engine only interprets the minus (-) as a prohibit operator when you place it at the start of a word. A minus (-) within double quotes (') is not treated as a prohibit operator.
Some examples:
search -engine
only matches records containing “search”, but not “engine”.search-engine
matches records containing “search” and “engine” (there’s no exclusion because the minus (-) is in the middle of the word)- search matches every record except those containing “search”
- search engine matches records containing “engine”, but not “search”
- '-engine' matches records containing “-engine” (no exclusion performed)
Source: Learn more
Implementation
AlgoliaQuery setAdvancedSyntax({bool enabled = false}) {
assert(!_parameters.containsKey('advancedSyntax'));
return _copyWithParameters(<String, dynamic>{'advancedSyntax': enabled});
}