Skip to content

Commit 0640631

Browse files
fix knn combined query
1 parent fa5cfe7 commit 0640631

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/queries/SemanticKnnVectorQueryRewriteInterceptor.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,16 +52,20 @@ protected QueryBuilder buildInferenceQuery(QueryBuilder queryBuilder, InferenceI
5252
assert (queryBuilder instanceof KnnVectorQueryBuilder);
5353
KnnVectorQueryBuilder knnVectorQueryBuilder = (KnnVectorQueryBuilder) queryBuilder;
5454
Map<String, List<String>> inferenceIdsIndices = indexInformation.getInferenceIdsIndices();
55+
QueryBuilder finalQueryBuilder;
5556
if (inferenceIdsIndices.size() == 1) {
5657
// Simple case, everything uses the same inference ID
5758
Map.Entry<String, List<String>> inferenceIdIndex = inferenceIdsIndices.entrySet().iterator().next();
5859
String searchInferenceId = inferenceIdIndex.getKey();
5960
List<String> indices = inferenceIdIndex.getValue();
60-
return buildNestedQueryFromKnnVectorQuery(knnVectorQueryBuilder, indices, searchInferenceId);
61+
finalQueryBuilder = buildNestedQueryFromKnnVectorQuery(knnVectorQueryBuilder, indices, searchInferenceId);
6162
} else {
6263
// Multiple inference IDs, construct a boolean query
63-
return buildInferenceQueryWithMultipleInferenceIds(knnVectorQueryBuilder, inferenceIdsIndices);
64+
finalQueryBuilder = buildInferenceQueryWithMultipleInferenceIds(knnVectorQueryBuilder, inferenceIdsIndices);
6465
}
66+
finalQueryBuilder.boost(queryBuilder.boost());
67+
finalQueryBuilder.queryName(queryBuilder.queryName());
68+
return finalQueryBuilder;
6569
}
6670

6771
private QueryBuilder buildInferenceQueryWithMultipleInferenceIds(
@@ -102,6 +106,8 @@ protected QueryBuilder buildCombinedInferenceAndNonInferenceQuery(
102106
)
103107
);
104108
}
109+
boolQueryBuilder.boost(queryBuilder.boost());
110+
boolQueryBuilder.queryName(queryBuilder.queryName());
105111
return boolQueryBuilder;
106112
}
107113

@@ -124,7 +130,7 @@ private QueryBuilder buildNestedQueryFromKnnVectorQuery(
124130
queryVectorBuilder
125131
),
126132
ScoreMode.Max
127-
).queryName(knnVectorQueryBuilder.queryName()).boost(knnVectorQueryBuilder.boost());
133+
);
128134
}
129135

130136
private KnnVectorQueryBuilder addIndexFilterToKnnVectorQuery(Collection<String> indices, KnnVectorQueryBuilder original) {

0 commit comments

Comments
 (0)