Skip to content

Commit 7e2d973

Browse files
committed
Revert InterceptedQueryBuilderWrapper changes
1 parent 10ec96d commit 7e2d973

File tree

8 files changed

+34
-52
lines changed

8 files changed

+34
-52
lines changed

server/src/main/java/org/elasticsearch/action/search/TransportSearchAction.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@
6565
import org.elasticsearch.core.TimeValue;
6666
import org.elasticsearch.index.Index;
6767
import org.elasticsearch.index.IndexNotFoundException;
68-
import org.elasticsearch.index.query.InterceptedQueryBuilderWrapper;
6968
import org.elasticsearch.index.query.QueryBuilder;
7069
import org.elasticsearch.index.query.Rewriteable;
7170
import org.elasticsearch.index.shard.ShardId;
@@ -80,7 +79,6 @@
8079
import org.elasticsearch.search.aggregations.AggregationReduceContext;
8180
import org.elasticsearch.search.builder.PointInTimeBuilder;
8281
import org.elasticsearch.search.builder.SearchSourceBuilder;
83-
import org.elasticsearch.search.builder.SubSearchSourceBuilder;
8482
import org.elasticsearch.search.internal.AliasFilter;
8583
import org.elasticsearch.search.internal.SearchContext;
8684
import org.elasticsearch.search.profile.SearchProfileResults;
@@ -791,13 +789,9 @@ public void onFailure(Exception e) {
791789
boolean skipUnavailable = remoteClusterService.isSkipUnavailable(clusterAlias);
792790
OriginalIndices indices = entry.getValue();
793791

794-
if (searchRequest.source().query() instanceof InterceptedQueryBuilderWrapper interceptedQuery) {
795-
searchRequest.source().subSearches(List.of(new SubSearchSourceBuilder(interceptedQuery.getOriginal())));
796-
}
797-
798792
SearchRequest ccsSearchRequest = SearchRequest.subSearchRequest(
799793
parentTaskId,
800-
searchRequest, // TODO: Need to prep the request here by stripping inference results?
794+
searchRequest,
801795
indices.indices(),
802796
clusterAlias,
803797
timeProvider.absoluteStartMillis(),
@@ -948,7 +942,7 @@ Map<String, SearchShardsResponse> createFinalResponse() {
948942
SearchShardsRequest searchShardsRequest = new SearchShardsRequest(
949943
indices,
950944
indicesOptions,
951-
query, // TODO: Need to prep the query here by stripping inference results?
945+
query,
952946
routing,
953947
preference,
954948
allowPartialResults,

server/src/main/java/org/elasticsearch/index/query/AbstractQueryBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ public final QueryBuilder rewrite(QueryRewriteContext queryRewriteContext) throw
283283
if (queryRewriteInterceptor != null) {
284284
var rewritten = queryRewriteInterceptor.interceptAndRewrite(queryRewriteContext, this);
285285
if (rewritten != this) {
286-
return new InterceptedQueryBuilderWrapper(rewritten, this);
286+
return new InterceptedQueryBuilderWrapper(rewritten);
287287
}
288288
}
289289

server/src/main/java/org/elasticsearch/index/query/InnerHitContextBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public static void extractInnerHits(QueryBuilder query, Map<String, InnerHitCont
6868
((AbstractQueryBuilder<?>) query).extractInnerHitBuilders(innerHitBuilders);
6969
} else if (query instanceof InterceptedQueryBuilderWrapper interceptedQuery) {
7070
// Unwrap an intercepted query here
71-
extractInnerHits(interceptedQuery.rewritten, innerHitBuilders);
71+
extractInnerHits(interceptedQuery.queryBuilder, innerHitBuilders);
7272
} else {
7373
throw new IllegalStateException(
7474
"provided query builder [" + query.getClass() + "] class should inherit from AbstractQueryBuilder, but it doesn't"

server/src/main/java/org/elasticsearch/index/query/InterceptedQueryBuilderWrapper.java

Lines changed: 18 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -22,95 +22,89 @@
2222
* Wrapper for instances of {@link QueryBuilder} that have been intercepted using the {@link QueryRewriteInterceptor} to
2323
* break out of the rewrite phase. These instances are unwrapped on serialization.
2424
*/
25-
public class InterceptedQueryBuilderWrapper implements QueryBuilder {
25+
class InterceptedQueryBuilderWrapper implements QueryBuilder {
2626

27-
protected final QueryBuilder original;
28-
protected final QueryBuilder rewritten;
27+
protected final QueryBuilder queryBuilder;
2928

30-
InterceptedQueryBuilderWrapper(QueryBuilder rewritten, QueryBuilder original) {
29+
InterceptedQueryBuilderWrapper(QueryBuilder queryBuilder) {
3130
super();
32-
this.original = original;
33-
this.rewritten = rewritten;
34-
}
35-
36-
public QueryBuilder getOriginal() {
37-
return original;
31+
this.queryBuilder = queryBuilder;
3832
}
3933

4034
@Override
4135
public QueryBuilder rewrite(QueryRewriteContext queryRewriteContext) throws IOException {
4236
QueryRewriteInterceptor queryRewriteInterceptor = queryRewriteContext.getQueryRewriteInterceptor();
4337
try {
4438
queryRewriteContext.setQueryRewriteInterceptor(null);
45-
QueryBuilder rewritten = this.rewritten.rewrite(queryRewriteContext);
46-
return rewritten != this.rewritten ? new InterceptedQueryBuilderWrapper(rewritten, original) : this;
39+
QueryBuilder rewritten = queryBuilder.rewrite(queryRewriteContext);
40+
return rewritten != queryBuilder ? new InterceptedQueryBuilderWrapper(rewritten) : this;
4741
} finally {
4842
queryRewriteContext.setQueryRewriteInterceptor(queryRewriteInterceptor);
4943
}
5044
}
5145

5246
@Override
5347
public String getWriteableName() {
54-
return rewritten.getWriteableName();
48+
return queryBuilder.getWriteableName();
5549
}
5650

5751
@Override
5852
public TransportVersion getMinimalSupportedVersion() {
59-
return rewritten.getMinimalSupportedVersion();
53+
return queryBuilder.getMinimalSupportedVersion();
6054
}
6155

6256
@Override
6357
public Query toQuery(SearchExecutionContext context) throws IOException {
64-
return rewritten.toQuery(context);
58+
return queryBuilder.toQuery(context);
6559
}
6660

6761
@Override
6862
public QueryBuilder queryName(String queryName) {
69-
rewritten.queryName(queryName);
63+
queryBuilder.queryName(queryName);
7064
return this;
7165
}
7266

7367
@Override
7468
public String queryName() {
75-
return rewritten.queryName();
69+
return queryBuilder.queryName();
7670
}
7771

7872
@Override
7973
public float boost() {
80-
return rewritten.boost();
74+
return queryBuilder.boost();
8175
}
8276

8377
@Override
8478
public QueryBuilder boost(float boost) {
85-
rewritten.boost(boost);
79+
queryBuilder.boost(boost);
8680
return this;
8781
}
8882

8983
@Override
9084
public String getName() {
91-
return rewritten.getName();
85+
return queryBuilder.getName();
9286
}
9387

9488
@Override
9589
public void writeTo(StreamOutput out) throws IOException {
96-
rewritten.writeTo(out);
90+
queryBuilder.writeTo(out);
9791
}
9892

9993
@Override
10094
public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
101-
return rewritten.toXContent(builder, params);
95+
return queryBuilder.toXContent(builder, params);
10296
}
10397

10498
@Override
10599
public boolean equals(Object o) {
106100
if (this == o) return true;
107101
if (o == null || getClass() != o.getClass()) return false;
108102
InterceptedQueryBuilderWrapper that = (InterceptedQueryBuilderWrapper) o;
109-
return Objects.equals(original, that.original) && Objects.equals(rewritten, that.rewritten);
103+
return Objects.equals(queryBuilder, that.queryBuilder);
110104
}
111105

112106
@Override
113107
public int hashCode() {
114-
return Objects.hash(original, rewritten);
108+
return Objects.hashCode(queryBuilder);
115109
}
116110
}

server/src/test/java/org/elasticsearch/index/query/InterceptedQueryBuilderWrapperTests.java

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,7 @@ public void cleanup() {
3636

3737
public void testQueryNameReturnsWrappedQueryBuilder() {
3838
MatchAllQueryBuilder matchAllQueryBuilder = new MatchAllQueryBuilder();
39-
InterceptedQueryBuilderWrapper interceptedQueryBuilderWrapper = new InterceptedQueryBuilderWrapper(
40-
matchAllQueryBuilder,
41-
matchAllQueryBuilder
42-
);
39+
InterceptedQueryBuilderWrapper interceptedQueryBuilderWrapper = new InterceptedQueryBuilderWrapper(matchAllQueryBuilder);
4340
String queryName = randomAlphaOfLengthBetween(5, 10);
4441
QueryBuilder namedQuery = interceptedQueryBuilderWrapper.queryName(queryName);
4542
assertTrue(namedQuery instanceof InterceptedQueryBuilderWrapper);
@@ -48,10 +45,7 @@ public void testQueryNameReturnsWrappedQueryBuilder() {
4845

4946
public void testQueryBoostReturnsWrappedQueryBuilder() {
5047
MatchAllQueryBuilder matchAllQueryBuilder = new MatchAllQueryBuilder();
51-
InterceptedQueryBuilderWrapper interceptedQueryBuilderWrapper = new InterceptedQueryBuilderWrapper(
52-
matchAllQueryBuilder,
53-
matchAllQueryBuilder
54-
);
48+
InterceptedQueryBuilderWrapper interceptedQueryBuilderWrapper = new InterceptedQueryBuilderWrapper(matchAllQueryBuilder);
5549
float boost = randomFloat();
5650
QueryBuilder boostedQuery = interceptedQueryBuilderWrapper.boost(boost);
5751
assertTrue(boostedQuery instanceof InterceptedQueryBuilderWrapper);
@@ -71,8 +65,8 @@ public void testRewrite() throws IOException {
7165
MatchQueryBuilder matchQueryBuilder = new MatchQueryBuilder("field", "value");
7266
rewritten = matchQueryBuilder.rewrite(context);
7367
assertTrue(rewritten instanceof InterceptedQueryBuilderWrapper);
74-
assertTrue(((InterceptedQueryBuilderWrapper) rewritten).rewritten instanceof MatchQueryBuilder);
75-
MatchQueryBuilder rewrittenMatchQueryBuilder = (MatchQueryBuilder) ((InterceptedQueryBuilderWrapper) rewritten).rewritten;
68+
assertTrue(((InterceptedQueryBuilderWrapper) rewritten).queryBuilder instanceof MatchQueryBuilder);
69+
MatchQueryBuilder rewrittenMatchQueryBuilder = (MatchQueryBuilder) ((InterceptedQueryBuilderWrapper) rewritten).queryBuilder;
7670
assertEquals("intercepted", rewrittenMatchQueryBuilder.value());
7771

7872
// An additional rewrite on an already intercepted query returns the same query

x-pack/plugin/inference/src/test/java/org/elasticsearch/index/query/SemanticKnnVectorQueryRewriteInterceptorTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,9 +100,9 @@ private void testRewrittenInferenceQuery(QueryRewriteContext context, KnnVectorQ
100100
InterceptedQueryBuilderWrapper intercepted = (InterceptedQueryBuilderWrapper) rewritten;
101101
assertEquals(original.boost(), intercepted.boost(), 0.0f);
102102
assertEquals(original.queryName(), intercepted.queryName());
103-
assertTrue(intercepted.rewritten instanceof NestedQueryBuilder);
103+
assertTrue(intercepted.queryBuilder instanceof NestedQueryBuilder);
104104

105-
NestedQueryBuilder nestedQueryBuilder = (NestedQueryBuilder) intercepted.rewritten;
105+
NestedQueryBuilder nestedQueryBuilder = (NestedQueryBuilder) intercepted.queryBuilder;
106106
assertEquals(original.boost(), nestedQueryBuilder.boost(), 0.0f);
107107
assertEquals(original.queryName(), nestedQueryBuilder.queryName());
108108
assertEquals(SemanticTextField.getChunksFieldName(FIELD_NAME), nestedQueryBuilder.path());

x-pack/plugin/inference/src/test/java/org/elasticsearch/index/query/SemanticMatchQueryRewriteInterceptorTests.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@ public void testMatchQueryOnInferenceFieldIsInterceptedAndRewrittenToSemanticQue
6464
rewritten instanceof InterceptedQueryBuilderWrapper
6565
);
6666
InterceptedQueryBuilderWrapper intercepted = (InterceptedQueryBuilderWrapper) rewritten;
67-
assertTrue(intercepted.rewritten instanceof SemanticQueryBuilder);
68-
SemanticQueryBuilder semanticQueryBuilder = (SemanticQueryBuilder) intercepted.rewritten;
67+
assertTrue(intercepted.queryBuilder instanceof SemanticQueryBuilder);
68+
SemanticQueryBuilder semanticQueryBuilder = (SemanticQueryBuilder) intercepted.queryBuilder;
6969
assertEquals(FIELD_NAME, semanticQueryBuilder.getFieldName());
7070
assertEquals(VALUE, semanticQueryBuilder.getQuery());
7171
}
@@ -98,8 +98,8 @@ public void testBoostAndQueryNameInMatchQueryRewrite() throws IOException {
9898
InterceptedQueryBuilderWrapper intercepted = (InterceptedQueryBuilderWrapper) rewritten;
9999
assertEquals(BOOST, intercepted.boost(), 0.0f);
100100
assertEquals(QUERY_NAME, intercepted.queryName());
101-
assertTrue(intercepted.rewritten instanceof SemanticQueryBuilder);
102-
SemanticQueryBuilder semanticQueryBuilder = (SemanticQueryBuilder) intercepted.rewritten;
101+
assertTrue(intercepted.queryBuilder instanceof SemanticQueryBuilder);
102+
SemanticQueryBuilder semanticQueryBuilder = (SemanticQueryBuilder) intercepted.queryBuilder;
103103
assertEquals(FIELD_NAME, semanticQueryBuilder.getFieldName());
104104
assertEquals(VALUE, semanticQueryBuilder.getQuery());
105105
}

x-pack/plugin/inference/src/test/java/org/elasticsearch/index/query/SemanticSparseVectorQueryRewriteInterceptorTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,8 @@ private void testRewrittenInferenceQuery(QueryRewriteContext context, QueryBuild
108108
assertEquals(original.boost(), intercepted.boost(), 0.0f);
109109
assertEquals(original.queryName(), intercepted.queryName());
110110

111-
assertTrue(intercepted.rewritten instanceof NestedQueryBuilder);
112-
NestedQueryBuilder nestedQueryBuilder = (NestedQueryBuilder) intercepted.rewritten;
111+
assertTrue(intercepted.queryBuilder instanceof NestedQueryBuilder);
112+
NestedQueryBuilder nestedQueryBuilder = (NestedQueryBuilder) intercepted.queryBuilder;
113113
assertEquals(SemanticTextField.getChunksFieldName(FIELD_NAME), nestedQueryBuilder.path());
114114
assertEquals(original.boost(), nestedQueryBuilder.boost(), 0.0f);
115115
assertEquals(original.queryName(), nestedQueryBuilder.queryName());

0 commit comments

Comments
 (0)