Skip to content

Commit 559ddd0

Browse files
Revert "Don't allow field caps to use semantic queries as index filters (#131111)" (#134209)
This reverts commit 8eb2a17.
1 parent 7577951 commit 559ddd0

File tree

3 files changed

+0
-191
lines changed

3 files changed

+0
-191
lines changed

docs/changelog/131111.yaml

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

server/src/main/java/org/elasticsearch/action/fieldcaps/FieldCapabilitiesRequest.java

Lines changed: 0 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,7 @@
1818
import org.elasticsearch.common.Strings;
1919
import org.elasticsearch.common.io.stream.StreamInput;
2020
import org.elasticsearch.common.io.stream.StreamOutput;
21-
import org.elasticsearch.index.query.BoolQueryBuilder;
22-
import org.elasticsearch.index.query.BoostingQueryBuilder;
23-
import org.elasticsearch.index.query.ConstantScoreQueryBuilder;
24-
import org.elasticsearch.index.query.DisMaxQueryBuilder;
25-
import org.elasticsearch.index.query.NestedQueryBuilder;
2621
import org.elasticsearch.index.query.QueryBuilder;
27-
import org.elasticsearch.index.query.functionscore.FunctionScoreQueryBuilder;
2822
import org.elasticsearch.tasks.CancellableTask;
2923
import org.elasticsearch.tasks.Task;
3024
import org.elasticsearch.tasks.TaskId;
@@ -290,53 +284,9 @@ public ActionRequestValidationException validate() {
290284
if (fields == null || fields.length == 0) {
291285
validationException = ValidateActions.addValidationError("no fields specified", validationException);
292286
}
293-
294-
// Band-aid fix for https://github.com/elastic/elasticsearch/issues/116106.
295-
// Semantic queries are high-recall queries, making them poor filters and effectively the same as an exists query when used in that
296-
// context.
297-
if (containsSemanticQuery(indexFilter)) {
298-
validationException = ValidateActions.addValidationError(
299-
"index filter cannot contain semantic queries. Use an exists query instead.",
300-
validationException
301-
);
302-
}
303-
304287
return validationException;
305288
}
306289

307-
/**
308-
* Recursively checks if a query builder contains any semantic queries
309-
*/
310-
private static boolean containsSemanticQuery(QueryBuilder queryBuilder) {
311-
boolean containsSemanticQuery = false;
312-
313-
if (queryBuilder == null) {
314-
return containsSemanticQuery;
315-
}
316-
317-
if ("semantic".equals(queryBuilder.getWriteableName())) {
318-
containsSemanticQuery = true;
319-
} else if (queryBuilder instanceof BoolQueryBuilder boolQuery) {
320-
containsSemanticQuery = boolQuery.must().stream().anyMatch(FieldCapabilitiesRequest::containsSemanticQuery)
321-
|| boolQuery.mustNot().stream().anyMatch(FieldCapabilitiesRequest::containsSemanticQuery)
322-
|| boolQuery.should().stream().anyMatch(FieldCapabilitiesRequest::containsSemanticQuery)
323-
|| boolQuery.filter().stream().anyMatch(FieldCapabilitiesRequest::containsSemanticQuery);
324-
} else if (queryBuilder instanceof DisMaxQueryBuilder disMaxQuery) {
325-
containsSemanticQuery = disMaxQuery.innerQueries().stream().anyMatch(FieldCapabilitiesRequest::containsSemanticQuery);
326-
} else if (queryBuilder instanceof NestedQueryBuilder nestedQuery) {
327-
containsSemanticQuery = containsSemanticQuery(nestedQuery.query());
328-
} else if (queryBuilder instanceof BoostingQueryBuilder boostingQuery) {
329-
containsSemanticQuery = containsSemanticQuery(boostingQuery.positiveQuery())
330-
|| containsSemanticQuery(boostingQuery.negativeQuery());
331-
} else if (queryBuilder instanceof ConstantScoreQueryBuilder constantScoreQuery) {
332-
containsSemanticQuery = containsSemanticQuery(constantScoreQuery.innerQuery());
333-
} else if (queryBuilder instanceof FunctionScoreQueryBuilder functionScoreQuery) {
334-
containsSemanticQuery = containsSemanticQuery(functionScoreQuery.query());
335-
}
336-
337-
return containsSemanticQuery;
338-
}
339-
340290
@Override
341291
public boolean equals(Object o) {
342292
if (this == o) return true;

x-pack/plugin/inference/src/test/java/org/elasticsearch/action/fieldcaps/FieldCapabilitiesRequestSemanticIndexFilterTests.java

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

0 commit comments

Comments
 (0)