Skip to content

Commit 463e64d

Browse files
committed
First implementation - But exactSearch uses the default VectorScorers, which are not using the original source
1 parent 3a65731 commit 463e64d

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ protected TopDocs approximateSearch(
6060
return topDocs;
6161
}
6262

63-
BitSet exactSearchAcceptDocs = topDocsToBitSet(topDocs, acceptDocs.length());
63+
BitSet exactSearchAcceptDocs = topDocsToBitSet(topDocs, context.reader().maxDoc());
6464
BitSetIterator bitSetIterator = new BitSetIterator(exactSearchAcceptDocs, topDocs.scoreDocs.length);
6565
QueryTimeout queryTimeout = null;
6666
if (knnCollectorManager instanceof TimeLimitingKnnCollectorManager timeLimitingKnnCollectorManager) {

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public class KnnVectorQueryBuilder extends AbstractQueryBuilder<KnnVectorQueryBu
8282
(Integer) args[2],
8383
(Integer) args[3],
8484
(Float) args[4],
85-
(Float) args[5]
85+
(Float) args[6]
8686
)
8787
);
8888

@@ -102,14 +102,14 @@ public class KnnVectorQueryBuilder extends AbstractQueryBuilder<KnnVectorQueryBu
102102
(p, c, n) -> p.namedObject(QueryVectorBuilder.class, n, c),
103103
QUERY_VECTOR_BUILDER_FIELD
104104
);
105+
PARSER.declareFloat(optionalConstructorArg(), RESCORE_VECTOR_OVERSAMPLE);
105106
PARSER.declareFieldArray(
106107
KnnVectorQueryBuilder::addFilterQueries,
107108
(p, c) -> AbstractQueryBuilder.parseTopLevelQuery(p),
108109
FILTER_FIELD,
109110
ObjectParser.ValueType.OBJECT_ARRAY
110111
);
111112
declareStandardFields(PARSER);
112-
PARSER.declareFloat(optionalConstructorArg(), RESCORE_VECTOR_OVERSAMPLE);
113113
}
114114

115115
public static KnnVectorQueryBuilder fromXContent(XContentParser parser) {
@@ -127,7 +127,7 @@ public static KnnVectorQueryBuilder fromXContent(XContentParser parser) {
127127
private final Float rescoreOversample;
128128

129129
public KnnVectorQueryBuilder(String fieldName, float[] queryVector, Integer k, Integer numCands, Float vectorSimilarity) {
130-
this(fieldName, VectorData.fromFloats(queryVector), null, null, k, numCands, vectorSimilarity);
130+
this(fieldName, VectorData.fromFloats(queryVector), null, null, k, numCands, vectorSimilarity, null);
131131
}
132132

133133
public KnnVectorQueryBuilder(
@@ -137,7 +137,7 @@ public KnnVectorQueryBuilder(
137137
Integer numCands,
138138
Float vectorSimilarity
139139
) {
140-
this(fieldName, null, queryVectorBuilder, null, k, numCands, vectorSimilarity);
140+
this(fieldName, null, queryVectorBuilder, null, k, numCands, vectorSimilarity, null);
141141
}
142142

143143
public KnnVectorQueryBuilder(String fieldName, byte[] queryVector, Integer k, Integer numCands, Float vectorSimilarity) {
@@ -157,7 +157,7 @@ private KnnVectorQueryBuilder(
157157
Integer numCands,
158158
Float vectorSimilarity
159159
) {
160-
this(fieldName, queryVector, null, null, k, numCands, vectorSimilarity, 0F);
160+
this(fieldName, queryVector, null, null, k, numCands, vectorSimilarity, null);
161161
}
162162

163163
private KnnVectorQueryBuilder(

0 commit comments

Comments
 (0)