1616import org .elasticsearch .index .query .Rewriteable ;
1717import org .elasticsearch .search .SearchService ;
1818import org .elasticsearch .transport .TransportService ;
19+ import org .elasticsearch .xpack .esql .core .expression .FoldContext ;
1920import org .elasticsearch .xpack .esql .core .util .Holder ;
2021import org .elasticsearch .xpack .esql .expression .function .fulltext .FullTextFunction ;
2122import org .elasticsearch .xpack .esql .plan .logical .EsRelation ;
3334/**
3435 * Some {@link FullTextFunction} implementations such as {@link org.elasticsearch.xpack.esql.expression.function.fulltext.Match}
3536 * will be translated to a {@link QueryBuilder} that require a rewrite phase on the coordinator.
36- * {@link QueryBuilderResolver#resolveQueryBuilders(LogicalPlan, ActionListener, BiConsumer)} will rewrite the plan by replacing
37+ * {@link QueryBuilderResolver#resolveQueryBuilders(LogicalPlan, FoldContext, ActionListener, BiConsumer)} will rewrite the plan by replacing
3738 * {@link FullTextFunction} expression with new ones that hold rewritten {@link QueryBuilder}s.
3839 */
3940public class QueryBuilderResolver {
@@ -56,6 +57,7 @@ public QueryBuilderResolver(
5657
5758 public void resolveQueryBuilders (
5859 LogicalPlan plan ,
60+ FoldContext foldContext ,
5961 ActionListener <Result > listener ,
6062 BiConsumer <LogicalPlan , ActionListener <Result >> callback
6163 ) {
@@ -72,7 +74,7 @@ public void resolveQueryBuilders(
7274 return ;
7375 }
7476 QueryRewriteContext ctx = queryRewriteContext (indexNames );
75- FullTextFunctionsRewritable rewritable = new FullTextFunctionsRewritable (unresolved );
77+ FullTextFunctionsRewritable rewritable = new FullTextFunctionsRewritable (unresolved , foldContext );
7678 Rewriteable .rewriteAndFetch (rewritable , ctx , new ActionListener <FullTextFunctionsRewritable >() {
7779 @ Override
7880 public void onResponse (FullTextFunctionsRewritable fullTextFunctionsRewritable ) {
@@ -136,11 +138,11 @@ private class FullTextFunctionsRewritable implements Rewriteable<FullTextFunctio
136138 this .queryBuilderMap = queryBuilderMap ;
137139 }
138140
139- FullTextFunctionsRewritable (Set <FullTextFunction > functions ) {
141+ FullTextFunctionsRewritable (Set <FullTextFunction > functions , FoldContext foldContext ) {
140142 this .queryBuilderMap = new HashMap <>();
141143
142144 for (FullTextFunction func : functions ) {
143- queryBuilderMap .put (func , TRANSLATOR_HANDLER .asQuery (func ).asBuilder ());
145+ queryBuilderMap .put (func , TRANSLATOR_HANDLER .asQuery (func , foldContext ).asBuilder ());
144146 }
145147 }
146148
0 commit comments