[8.19] [ES|QL] Add MATCH_PHRASE (#127661)#129215
Merged
kderusso merged 13 commits intoelastic:8.19from Jun 12, 2025
Merged
Conversation
* Initial commit of match_phrase * Add MatchPhraseQueryTests * First pass at CSV specs * Update docs/changelog/127661.yaml * Refactor so MatchPhrase doesn't use all fulltext test cases, just text only * Fix tests * Add some CSV test cases * Fix test * Update changelog * Update tests * Comment out MATCH_PHRASE in search-functions Markdown * Minor PR feedback * PR feedback - refactor/consolidate code * Add some more tests * Fix some tests * [CI] Auto commit changes from spotless * Fix tests * PR feedback - add tests, support boost and numeric data * Revert "PR feedback - add tests, support boost and numeric data" This reverts commit 4e7a699. * Apply testing/PR feedback outside numeric support only * Regenerate docs * Add negative test * Update x-pack/plugin/esql/qa/testFixtures/src/main/resources/match-phrase-function.csv-spec Co-authored-by: Carlos Delgado <6339205+carlosdelest@users.noreply.github.com> * Update x-pack/plugin/esql/qa/testFixtures/src/main/resources/match-phrase-function.csv-spec Co-authored-by: Carlos Delgado <6339205+carlosdelest@users.noreply.github.com> * Update x-pack/plugin/esql/qa/testFixtures/src/main/resources/match-phrase-function.csv-spec Co-authored-by: Carlos Delgado <6339205+carlosdelest@users.noreply.github.com> * PR feedback * Fix auto-commit error * Regenerate docs * Update x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/expression/function/fulltext/MatchPhrase.java Co-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com> * Remove non text field types * Fake test data * Remove tests that no longer should pass without ip/date/version support * Put real data in score tests now that I was able to engineer a failure * Realized the scoring test might be flakey because how it was written, updated * PR feedback * PR feedback * [CI] Auto commit changes from spotless * Add check to MatchPhrase tests * Fix merge errors * [CI] Auto commit changes from spotless * Test generated docs * Add additional verifier tests --------- Co-authored-by: elasticsearchmachine <infra-root+elasticsearchmachine@elastic.co> Co-authored-by: Carlos Delgado <6339205+carlosdelest@users.noreply.github.com> Co-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com> (cherry picked from commit eee423a) # Conflicts: # docs/reference/esql/functions/description/match_phrase.md # docs/reference/esql/functions/examples/match_phrase.md # docs/reference/esql/functions/kibana/definition/match_phrase.json # docs/reference/esql/functions/kibana/docs/match_phrase.md # docs/reference/query-languages/esql/_snippets/lists/search-functions.md # docs/reference/query-languages/esql/functions-operators/search-functions.md # x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/action/EsqlCapabilities.java # x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/expression/function/EsqlFunctionRegistry.java # x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/expression/function/fulltext/FullTextFunction.java # x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/expression/function/fulltext/Match.java # x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/expression/function/fulltext/QueryString.java # x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/analysis/VerifierTests.java
* Take match_phrase out of snapshot and make tech preview * Update docs/changelog/128925.yaml * PR feedback * Adding regenerated test data * Update docs/changelog/128925.yaml Co-authored-by: Carlos Delgado <6339205+carlosdelest@users.noreply.github.com> * [CI] Auto commit changes from spotless * Checkstyle * Correct docs * Hopefully fix docs build * Found one more bad docs link - here's hoping this now fixes the doc build * OMG bitten by - vs _ --------- Co-authored-by: Carlos Delgado <6339205+carlosdelest@users.noreply.github.com> Co-authored-by: elasticsearchmachine <infra-root+elasticsearchmachine@elastic.co> Co-authored-by: Aurélien FOUCRET <aurelien.foucret@gmail.com>
This was referenced Jun 10, 2025
Member
carlosdelest
left a comment
There was a problem hiding this comment.
LGTM, but for the fact that match_phrase should be non-snapshot as it is GA now
| def(Rate.class, Rate::withUnresolvedTimestamp, "rate"), | ||
| def(Term.class, bi(Term::new), "term") } }; | ||
| def(Term.class, bi(Term::new), "term"), | ||
| def(MatchPhrase.class, tri(MatchPhrase::new), "match_phrase") } }; |
Member
There was a problem hiding this comment.
It should be registered on non-snapshot functions, right?
Member
Author
There was a problem hiding this comment.
Oh shoot, that made it in with the PR to take out of snapshot and into preview! I will spin up a PR for that first, thanks for the catch!
Member
There was a problem hiding this comment.
Didn't get that on the original PR 😢 , at least it's easy to fix!
| - match: {esql.functions.coalesce: $functions_coalesce} | ||
| # Testing for the entire function set isn't feasible, so we just check that we return the correct count as an approximation. | ||
| - length: {esql.functions: 145} # check the "sister" test below for a likely update to the same esql.functions length check | ||
| - length: {esql.functions: 146} # check the "sister" test below for a likely update to the same esql.functions length check |
Member
There was a problem hiding this comment.
The number should also increase in the non-snapshot version of the test, right?
…129255) * Register match_phrase as a function not a snapshot function * Update usage
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Backport
This will backport the following commits from
mainto8.19:Questions ?
Please refer to the Backport tool documentation