Loading

ES|QL MATCH_PHRASE function

Performs a match_phrase query on the specified field or expression.

Embedded
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_phrase for 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.

Tip

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