ANALYZER()
Sets an analyzer for the fulltext search query. The analyzer applies to all nested functions which do not have an analyzer argument. If a nested function has its own analyzer, then that analyzer takes precedence over what you choose here.
The default analyzer is identity
.
Syntax
ANALYZER(expr, analyzer)
Key | Type | Description |
---|---|---|
expr | expression | A valid search expression. |
analyzer | string | Name of the analyzer. |
Example 1
Using the ANALYZER()
function, you can specify an analyzer type. For example:
FOR doc IN viewName
SEARCH ANALYZER(doc.text == "bar", "text_en")
RETURN doc
The second argument in the ANALYZER()
function specifies a text_en
analyzer. The expression doc.text == "bar"
must be wrapped by the ANALYZER()
function. Otherwise, the expression would be evaluated with the default identity
analyzer.
Example 2
In the following query, the search expression is swapped by ANALYZER()
to set the text_en
analyzer for both PHRASE()
functions:
FOR doc IN viewName
SEARCH ANALYZER(PHRASE(doc.text, "foo") OR PHRASE(doc.text, "bar"), "text_en")
RETURN doc
Without a specified ANALYZER()
:
FOR doc IN viewName
SEARCH PHRASE(doc.text, "foo", "text_en") OR PHRASE(doc.text, "bar", "text_en")
RETURN doc
Example 3
In this example, ANALYZER()
sets a default text_en
analyzer. In the nested function that searches for bar
, the identity
analyzer overrides the higher-level choice.
FOR doc IN viewName
SEARCH ANALYZER(PHRASE(doc.text, "foo") OR PHRASE(doc.text, "bar", "identity"), "text_en")
RETURN doc