ES|QL MATCH_PHRASE function
Performs a match_phrase query on the specified field or expression.
field- Field or expression that the query will target.
query- Value to find in the provided field or expression.
options-
(Optional) MatchPhrase additional options as function named parameters. See
match_phrasefor more information.
Use MATCH_PHRASE to perform a match_phrase on the specified field or expression. Using MATCH_PHRASE is equivalent to using the match_phrase query in the Elasticsearch Query DSL.
MatchPhrase can be used on text and keyword fields. MatchPhrase is not supported for other field types, like semantic_text, boolean, date, or numeric types.
MatchPhrase can use function named parameters to specify additional options for the
match_phrase query.
All match_phrase query parameters are supported.
MATCH_PHRASE returns true if the provided query matches the row.
MATCH_PHRASE on expressions
MATCH_PHRASE can also search text and keyword expressions that are not backed by an index,
such as computed columns produced by EVAL, STATS, or other commands.
When the target is not an indexed field, the search evaluates by scanning
values row by row, which may be slower on large datasets.
On a keyword expression the whole query string must equal a value exactly, matching
the term query semantics of match_phrase on an indexed keyword field.
When searching expressions, function named parameters
(match_phrase query options) are not supported.
Additionally, MATCH_PHRASE on an expression does not contribute to the relevance score
when using METADATA _score.
Learn more about using ES|QL for search use cases.
| field | query | options | result |
|---|---|---|---|
| keyword | keyword | named parameters | boolean |
| text | keyword | named parameters | boolean |
analyzer- (keyword) Analyzer used to convert the text in the query value into token. Defaults to the index-time analyzer mapped for the field. If no analyzer is mapped, the index’s default analyzer is used.
slop- (integer) Maximum number of positions allowed between matching tokens. Defaults to 0. Transposed terms have a slop of 2.
zero_terms_query- (keyword) Indicates whether all documents or none are returned if the analyzer removes all tokens, such as when using a stop filter. Defaults to none.
boost-
(float) Floating point number used to decrease or increase the relevance scores of the query. Defaults to 1.0.
FROM books
| WHERE MATCH_PHRASE(author, "William Faulkner")
| book_no:keyword | author:text |
|---|---|
| 2713 | William Faulkner |
| 2883 | William Faulkner |
| 4724 | William Faulkner |
| 4977 | William Faulkner |
| 5119 | William Faulkner |