Skip to content

Commit 1cd95b5

Browse files
authored
Remove StringQueryPredicate (#117134) (#117291)
* Remove StringQueryPredicate * Fix tests
1 parent af59dcd commit 1cd95b5

File tree

8 files changed

+15
-146
lines changed

8 files changed

+15
-146
lines changed

x-pack/plugin/esql-core/src/main/java/org/elasticsearch/xpack/esql/core/expression/predicate/fulltext/StringQueryPredicate.java

Lines changed: 0 additions & 62 deletions
This file was deleted.

x-pack/plugin/esql-core/src/main/java/org/elasticsearch/xpack/esql/core/planner/ExpressionTranslators.java

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import org.elasticsearch.xpack.esql.core.expression.FieldAttribute;
1313
import org.elasticsearch.xpack.esql.core.expression.MetadataAttribute;
1414
import org.elasticsearch.xpack.esql.core.expression.predicate.fulltext.MultiMatchQueryPredicate;
15-
import org.elasticsearch.xpack.esql.core.expression.predicate.fulltext.StringQueryPredicate;
1615
import org.elasticsearch.xpack.esql.core.expression.predicate.logical.And;
1716
import org.elasticsearch.xpack.esql.core.expression.predicate.logical.Not;
1817
import org.elasticsearch.xpack.esql.core.expression.predicate.logical.Or;
@@ -26,7 +25,6 @@
2625
import org.elasticsearch.xpack.esql.core.querydsl.query.MultiMatchQuery;
2726
import org.elasticsearch.xpack.esql.core.querydsl.query.NotQuery;
2827
import org.elasticsearch.xpack.esql.core.querydsl.query.Query;
29-
import org.elasticsearch.xpack.esql.core.querydsl.query.QueryStringQuery;
3028
import org.elasticsearch.xpack.esql.core.querydsl.query.RegexQuery;
3129
import org.elasticsearch.xpack.esql.core.querydsl.query.WildcardQuery;
3230
import org.elasticsearch.xpack.esql.core.tree.Source;
@@ -73,18 +71,6 @@ private static Query translateField(RegexMatch e, String targetFieldName) {
7371
}
7472
}
7573

76-
public static class StringQueries extends ExpressionTranslator<StringQueryPredicate> {
77-
78-
@Override
79-
protected Query asQuery(StringQueryPredicate q, TranslatorHandler handler) {
80-
return doTranslate(q, handler);
81-
}
82-
83-
public static Query doTranslate(StringQueryPredicate q, TranslatorHandler handler) {
84-
return new QueryStringQuery(q.source(), q.query(), q.fields(), q);
85-
}
86-
}
87-
8874
public static class MultiMatches extends ExpressionTranslator<MultiMatchQueryPredicate> {
8975

9076
@Override

x-pack/plugin/esql-core/src/main/java/org/elasticsearch/xpack/esql/core/querydsl/query/QueryStringQuery.java

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import org.elasticsearch.index.query.QueryBuilder;
1515
import org.elasticsearch.index.query.QueryBuilders;
1616
import org.elasticsearch.index.query.QueryStringQueryBuilder;
17-
import org.elasticsearch.xpack.esql.core.expression.predicate.fulltext.StringQueryPredicate;
1817
import org.elasticsearch.xpack.esql.core.tree.Source;
1918

2019
import java.util.Collections;
@@ -55,20 +54,13 @@ public class QueryStringQuery extends Query {
5554

5655
private final String query;
5756
private final Map<String, Float> fields;
58-
private StringQueryPredicate predicate;
5957
private final Map<String, String> options;
6058

61-
// dedicated constructor for QueryTranslator
62-
public QueryStringQuery(Source source, String query, String fieldName) {
63-
this(source, query, Collections.singletonMap(fieldName, Float.valueOf(1.0f)), null);
64-
}
65-
66-
public QueryStringQuery(Source source, String query, Map<String, Float> fields, StringQueryPredicate predicate) {
59+
public QueryStringQuery(Source source, String query, Map<String, Float> fields, Map<String, String> options) {
6760
super(source);
6861
this.query = query;
6962
this.fields = fields;
70-
this.predicate = predicate;
71-
this.options = predicate == null ? Collections.emptyMap() : predicate.optionMap();
63+
this.options = options == null ? Collections.emptyMap() : options;
7264
}
7365

7466
@Override
@@ -95,7 +87,7 @@ public String query() {
9587

9688
@Override
9789
public int hashCode() {
98-
return Objects.hash(query, fields, predicate);
90+
return Objects.hash(query, fields);
9991
}
10092

10193
@Override
@@ -109,7 +101,7 @@ public boolean equals(Object obj) {
109101
}
110102

111103
QueryStringQuery other = (QueryStringQuery) obj;
112-
return Objects.equals(query, other.query) && Objects.equals(fields, other.fields) && Objects.equals(predicate, other.predicate);
104+
return Objects.equals(query, other.query) && Objects.equals(fields, other.fields) && Objects.equals(options, other.options);
113105
}
114106

115107
@Override

x-pack/plugin/esql-core/src/test/java/org/elasticsearch/xpack/esql/core/querydsl/query/QueryStringQueryTests.java

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,42 +10,40 @@
1010
import org.elasticsearch.index.query.Operator;
1111
import org.elasticsearch.index.query.QueryStringQueryBuilder;
1212
import org.elasticsearch.test.ESTestCase;
13-
import org.elasticsearch.xpack.esql.core.expression.predicate.fulltext.StringQueryPredicate;
1413
import org.elasticsearch.xpack.esql.core.tree.Source;
1514
import org.elasticsearch.xpack.esql.core.util.StringUtils;
1615

1716
import java.util.Collections;
17+
import java.util.Map;
1818

1919
import static org.hamcrest.Matchers.equalTo;
2020

2121
public class QueryStringQueryTests extends ESTestCase {
2222

2323
public void testQueryBuilding() {
24-
QueryStringQueryBuilder qb = getBuilder("lenient=true");
24+
QueryStringQueryBuilder qb = getBuilder(Map.of("lenient", "true"));
2525
assertThat(qb.lenient(), equalTo(true));
2626

27-
qb = getBuilder("lenient=true;default_operator=AND");
27+
qb = getBuilder(Map.of("lenient", "true", "default_operator", "AND"));
2828
assertThat(qb.lenient(), equalTo(true));
2929
assertThat(qb.defaultOperator(), equalTo(Operator.AND));
3030

31-
Exception e = expectThrows(IllegalArgumentException.class, () -> getBuilder("pizza=yummy"));
31+
Exception e = expectThrows(IllegalArgumentException.class, () -> getBuilder(Map.of("pizza", "yummy")));
3232
assertThat(e.getMessage(), equalTo("illegal query_string option [pizza]"));
3333

34-
e = expectThrows(ElasticsearchParseException.class, () -> getBuilder("type=aoeu"));
34+
e = expectThrows(ElasticsearchParseException.class, () -> getBuilder(Map.of("type", "aoeu")));
3535
assertThat(e.getMessage(), equalTo("failed to parse [multi_match] query type [aoeu]. unknown type."));
3636
}
3737

38-
private static QueryStringQueryBuilder getBuilder(String options) {
38+
private static QueryStringQueryBuilder getBuilder(Map<String, String> options) {
3939
final Source source = new Source(1, 1, StringUtils.EMPTY);
40-
final StringQueryPredicate mmqp = new StringQueryPredicate(source, "eggplant", options);
41-
final QueryStringQuery mmq = new QueryStringQuery(source, "eggplant", Collections.singletonMap("foo", 1.0f), mmqp);
42-
return (QueryStringQueryBuilder) mmq.asBuilder();
40+
final QueryStringQuery query = new QueryStringQuery(source, "eggplant", Collections.singletonMap("foo", 1.0f), options);
41+
return (QueryStringQueryBuilder) query.asBuilder();
4342
}
4443

4544
public void testToString() {
4645
final Source source = new Source(1, 1, StringUtils.EMPTY);
47-
final StringQueryPredicate mmqp = new StringQueryPredicate(source, "eggplant", "");
48-
final QueryStringQuery mmq = new QueryStringQuery(source, "eggplant", Collections.singletonMap("foo", 1.0f), mmqp);
46+
final QueryStringQuery mmq = new QueryStringQuery(source, "eggplant", Collections.singletonMap("foo", 1.0f), Map.of());
4947
assertEquals("QueryStringQuery@1:2[{foo=1.0}:eggplant]", mmq.toString());
5048
}
5149
}

x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/expression/function/fulltext/FullTextWritables.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,12 @@
1010
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
1111
import org.elasticsearch.xpack.esql.core.expression.predicate.fulltext.MatchQueryPredicate;
1212
import org.elasticsearch.xpack.esql.core.expression.predicate.fulltext.MultiMatchQueryPredicate;
13-
import org.elasticsearch.xpack.esql.core.expression.predicate.fulltext.StringQueryPredicate;
1413

1514
import java.util.List;
1615

1716
public class FullTextWritables {
1817

1918
public static List<NamedWriteableRegistry.Entry> getNamedWriteables() {
20-
return List.of(
21-
MatchQueryPredicate.ENTRY,
22-
MultiMatchQueryPredicate.ENTRY,
23-
StringQueryPredicate.ENTRY,
24-
QueryString.ENTRY,
25-
Match.ENTRY
26-
);
19+
return List.of(MatchQueryPredicate.ENTRY, MultiMatchQueryPredicate.ENTRY, QueryString.ENTRY, Match.ENTRY);
2720
}
2821
}

x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/optimizer/rules/physical/local/PushFiltersToSource.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import org.elasticsearch.xpack.esql.core.expression.function.scalar.UnaryScalarFunction;
2020
import org.elasticsearch.xpack.esql.core.expression.predicate.Predicates;
2121
import org.elasticsearch.xpack.esql.core.expression.predicate.Range;
22-
import org.elasticsearch.xpack.esql.core.expression.predicate.fulltext.StringQueryPredicate;
2322
import org.elasticsearch.xpack.esql.core.expression.predicate.logical.BinaryLogic;
2423
import org.elasticsearch.xpack.esql.core.expression.predicate.logical.Not;
2524
import org.elasticsearch.xpack.esql.core.expression.predicate.nulls.IsNotNull;
@@ -253,8 +252,6 @@ static boolean canPushToSource(Expression exp, LucenePushdownPredicates lucenePu
253252
&& Expressions.foldable(cidrMatch.matches());
254253
} else if (exp instanceof SpatialRelatesFunction spatial) {
255254
return canPushSpatialFunctionToSource(spatial, lucenePushdownPredicates);
256-
} else if (exp instanceof StringQueryPredicate) {
257-
return true;
258255
} else if (exp instanceof QueryString) {
259256
return true;
260257
} else if (exp instanceof Match mf) {

x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/planner/EsqlExpressionTranslators.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@ public final class EsqlExpressionTranslators {
8686
new ExpressionTranslators.IsNotNulls(),
8787
new ExpressionTranslators.Nots(),
8888
new ExpressionTranslators.Likes(),
89-
new ExpressionTranslators.StringQueries(),
9089
new ExpressionTranslators.MultiMatches(),
9190
new MatchFunctionTranslator(),
9291
new QueryStringFunctionTranslator(),
@@ -536,7 +535,7 @@ protected Query asQuery(Match match, TranslatorHandler handler) {
536535
public static class QueryStringFunctionTranslator extends ExpressionTranslator<QueryString> {
537536
@Override
538537
protected Query asQuery(QueryString queryString, TranslatorHandler handler) {
539-
return new QueryStringQuery(queryString.source(), queryString.queryAsText(), Map.of(), null);
538+
return new QueryStringQuery(queryString.source(), queryString.queryAsText(), Map.of(), Map.of());
540539
}
541540
}
542541
}

x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/expression/predicate/operator/fulltext/StringQuerySerializationTests.java

Lines changed: 0 additions & 34 deletions
This file was deleted.

0 commit comments

Comments
 (0)