Skip to content

Commit 651ee2b

Browse files
Refactor knn vector to adjust boost and queryname in the top level
1 parent 9e725cb commit 651ee2b

File tree

4 files changed

+8
-19
lines changed

4 files changed

+8
-19
lines changed

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

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,10 +84,6 @@ private NestedQueryBuilder(String path, QueryBuilder query, ScoreMode scoreMode,
8484
this.innerHitBuilder = innerHitBuilder;
8585
}
8686

87-
public static NestedQueryBuilder from(String path, QueryBuilder query, ScoreMode scoreMode, String queryName) {
88-
return new NestedQueryBuilder(path, query, scoreMode).queryName(queryName);
89-
}
90-
9187
/**
9288
* Read from a stream.
9389
*/

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

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -484,10 +484,6 @@ public static NestedQueryBuilder nestedQuery(String path, QueryBuilder query, Sc
484484
return new NestedQueryBuilder(path, query, scoreMode);
485485
}
486486

487-
public static NestedQueryBuilder nestedQuery(String path, QueryBuilder query, ScoreMode scoreMode, String queryName) {
488-
return NestedQueryBuilder.from(path, query, scoreMode, queryName);
489-
}
490-
491487
/**
492488
* A filter for a field based on several terms matching on any of them.
493489
*

server/src/main/java/org/elasticsearch/search/vectors/KnnVectorQueryBuilder.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -280,8 +280,6 @@ public KnnVectorQueryBuilder(KnnVectorQueryBuilder queryBuilder, String fieldNam
280280
queryBuilder.rescoreVectorBuilder(),
281281
queryBuilder.getVectorSimilarity()
282282
);
283-
this.boost = queryBuilder.boost();
284-
this.queryName = queryBuilder.queryName();
285283
this.filterQueries.addAll(queryBuilder.filterQueries());
286284
}
287285

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

Lines changed: 8 additions & 9 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(
@@ -118,13 +122,8 @@ private QueryBuilder buildNestedQueryFromKnnVectorQuery(
118122
}
119123
return QueryBuilders.nestedQuery(
120124
SemanticTextField.getChunksFieldName(filteredKnnVectorQueryBuilder.getFieldName()),
121-
buildNewKnnVectorQuery(
122-
SemanticTextField.getEmbeddingsFieldName(filteredKnnVectorQueryBuilder.getFieldName()),
123-
filteredKnnVectorQueryBuilder,
124-
queryVectorBuilder
125-
),
126-
ScoreMode.Max,
127-
filteredKnnVectorQueryBuilder.queryName()
125+
new KnnVectorQueryBuilder(filteredKnnVectorQueryBuilder, SemanticTextField.getEmbeddingsFieldName(filteredKnnVectorQueryBuilder.getFieldName()), queryVectorBuilder),
126+
ScoreMode.Max
128127
);
129128
}
130129

0 commit comments

Comments
 (0)