Skip to content

Commit 71e0c43

Browse files
committed
removed unnecessary ctor and made visitPercentage a Float intead of a float in all ctors
1 parent 6ea6c59 commit 71e0c43

File tree

5 files changed

+28
-38
lines changed

5 files changed

+28
-38
lines changed

server/src/main/java/org/elasticsearch/search/retriever/KnnRetrieverBuilder.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -118,18 +118,6 @@ public static KnnRetrieverBuilder fromXContent(XContentParser parser, RetrieverP
118118
private final RescoreVectorBuilder rescoreVectorBuilder;
119119
private final Float similarity;
120120

121-
public KnnRetrieverBuilder(
122-
String field,
123-
float[] queryVector,
124-
QueryVectorBuilder queryVectorBuilder,
125-
int k,
126-
int numCands,
127-
RescoreVectorBuilder rescoreVectorBuilder,
128-
Float similarity
129-
) {
130-
this(field, queryVector, queryVectorBuilder, k, numCands, null, rescoreVectorBuilder, similarity);
131-
}
132-
133121
public KnnRetrieverBuilder(
134122
String field,
135123
float[] queryVector,

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

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ public KnnSearchBuilder(
147147
float[] queryVector,
148148
int k,
149149
int numCands,
150-
float visitPercentage,
150+
Float visitPercentage,
151151
RescoreVectorBuilder rescoreVectorBuilder,
152152
Float similarity
153153
) {
@@ -177,7 +177,7 @@ public KnnSearchBuilder(
177177
VectorData queryVector,
178178
int k,
179179
int numCands,
180-
float visitPercentage,
180+
Float visitPercentage,
181181
RescoreVectorBuilder rescoreVectorBuilder,
182182
Float similarity
183183
) {
@@ -198,7 +198,7 @@ public KnnSearchBuilder(
198198
QueryVectorBuilder queryVectorBuilder,
199199
int k,
200200
int numCands,
201-
float visitPercentage,
201+
Float visitPercentage,
202202
RescoreVectorBuilder rescoreVectorBuilder,
203203
Float similarity
204204
) {
@@ -220,7 +220,7 @@ public KnnSearchBuilder(
220220
QueryVectorBuilder queryVectorBuilder,
221221
int k,
222222
int numCands,
223-
float visitPercentage,
223+
Float visitPercentage,
224224
RescoreVectorBuilder rescoreVectorBuilder,
225225
Float similarity
226226
) {
@@ -255,7 +255,7 @@ private KnnSearchBuilder(
255255
this.queryVectorBuilder = null;
256256
this.k = k;
257257
this.numCands = numCands;
258-
this.visitPercentage = visitPercentage;
258+
this.visitPercentage = visitPercentage == null ? 0.0f : visitPercentage;
259259
this.filterQueries = filterQueries;
260260
this.querySupplier = querySupplier;
261261
this.similarity = similarity;
@@ -287,7 +287,7 @@ private KnnSearchBuilder(
287287
if (numCandidates > NUM_CANDS_LIMIT) {
288288
throw new IllegalArgumentException("[" + NUM_CANDS_FIELD.getPreferredName() + "] cannot exceed [" + NUM_CANDS_LIMIT + "]");
289289
}
290-
if (visitPercentage < 0.0f || visitPercentage > 100.0f) {
290+
if (visitPercentage != null && (visitPercentage < 0.0f || visitPercentage > 100.0f)) {
291291
throw new IllegalArgumentException("[" + VISIT_PERCENTAGE_FIELD.getPreferredName() + "] must be between 0 and 100");
292292
}
293293
if (queryVector == null && queryVectorBuilder == null) {
@@ -313,7 +313,7 @@ private KnnSearchBuilder(
313313
this.queryVectorBuilder = queryVectorBuilder;
314314
this.k = k;
315315
this.numCands = numCandidates;
316-
this.visitPercentage = visitPercentage;
316+
this.visitPercentage = visitPercentage == null ? 0.0f : visitPercentage;;
317317
this.rescoreVectorBuilder = rescoreVectorBuilder;
318318
this.innerHitBuilder = innerHitBuilder;
319319
this.similarity = similarity;
@@ -514,7 +514,7 @@ public boolean equals(Object o) {
514514
KnnSearchBuilder that = (KnnSearchBuilder) o;
515515
return k == that.k
516516
&& numCands == that.numCands
517-
&& visitPercentage == that.visitPercentage
517+
&& Objects.equals(visitPercentage, that.visitPercentage)
518518
&& Objects.equals(rescoreVectorBuilder, that.rescoreVectorBuilder)
519519
&& Objects.equals(field, that.field)
520520
&& Objects.equals(queryVector, that.queryVector)
@@ -718,15 +718,14 @@ public KnnSearchBuilder build(int size) {
718718
int adjustedNumCandidates = numCandidates == null
719719
? Math.round(Math.min(NUM_CANDS_LIMIT, NUM_CANDS_MULTIPLICATIVE_FACTOR * adjustedK))
720720
: numCandidates;
721-
float adjustedVisitPercentage = visitPercentage == null ? 0.0f : visitPercentage;
722721
return new KnnSearchBuilder(
723722
field,
724723
queryVectorBuilder,
725724
queryVector,
726725
filterQueries,
727726
adjustedK,
728727
adjustedNumCandidates,
729-
adjustedVisitPercentage,
728+
visitPercentage,
730729
rescoreVectorBuilder,
731730
similarity,
732731
innerHitBuilder,

x-pack/plugin/rank-rrf/src/internalClusterTest/java/org/elasticsearch/xpack/rank/linear/LinearRetrieverIT.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ public void testLinearRetrieverWithAggs() {
175175
);
176176
standard1.getPreFilterQueryBuilders().add(QueryBuilders.queryStringQuery("search").defaultField(TEXT_FIELD));
177177
// this one retrieves docs 2, 3, 6, and 7
178-
KnnRetrieverBuilder knnRetrieverBuilder = new KnnRetrieverBuilder(VECTOR_FIELD, new float[] { 2.0f }, null, 10, 100, null, null);
178+
KnnRetrieverBuilder knnRetrieverBuilder = new KnnRetrieverBuilder(VECTOR_FIELD, new float[] { 2.0f }, null, 10, 100, null, null, null);
179179

180180
// all requests would have an equal weight and use the identity normalizer
181181
source.retriever(
@@ -233,7 +233,7 @@ public void testLinearWithCollapse() {
233233
standard1.getPreFilterQueryBuilders().add(QueryBuilders.queryStringQuery("search").defaultField(TEXT_FIELD));
234234
// this one retrieves docs 2, 3, 6, and 7
235235
// with scores 1, 0.5, 0.05882353, 0.03846154
236-
KnnRetrieverBuilder knnRetrieverBuilder = new KnnRetrieverBuilder(VECTOR_FIELD, new float[] { 2.0f }, null, 10, 100, null, null);
236+
KnnRetrieverBuilder knnRetrieverBuilder = new KnnRetrieverBuilder(VECTOR_FIELD, new float[] { 2.0f }, null, 10, 100, null, null, null);
237237
// final ranking with no-normalizer would be: doc 2, 6, 1, 4, 7, 3
238238
// doc 1: 10
239239
// doc 2: 9 + 20 + 1 = 30
@@ -302,7 +302,7 @@ public void testLinearRetrieverWithCollapseAndAggs() {
302302
standard1.getPreFilterQueryBuilders().add(QueryBuilders.queryStringQuery("search").defaultField(TEXT_FIELD));
303303
// this one retrieves docs 2, 3, 6, and 7
304304
// with scores 1, 0.5, 0.05882353, 0.03846154
305-
KnnRetrieverBuilder knnRetrieverBuilder = new KnnRetrieverBuilder(VECTOR_FIELD, new float[] { 2.0f }, null, 10, 100, null, null);
305+
KnnRetrieverBuilder knnRetrieverBuilder = new KnnRetrieverBuilder(VECTOR_FIELD, new float[] { 2.0f }, null, 10, 100, null,null, null);
306306
// final ranking with no-normalizer would be: doc 2, 6, 1, 4, 7, 3
307307
// doc 1: 10
308308
// doc 2: 9 + 20 + 1 = 30
@@ -393,7 +393,7 @@ public void testMultipleLinearRetrievers() {
393393
),
394394
// this one bring just doc 7 which should be ranked first eventually with a score of 100
395395
new CompoundRetrieverBuilder.RetrieverSource(
396-
new KnnRetrieverBuilder(VECTOR_FIELD, new float[] { 7.0f }, null, 1, 100, null, null),
396+
new KnnRetrieverBuilder(VECTOR_FIELD, new float[] { 7.0f }, null, 1, 100, null,null, null),
397397
null
398398
)
399399
),
@@ -447,7 +447,7 @@ public void testLinearExplainWithNamedRetrievers() {
447447
standard1.getPreFilterQueryBuilders().add(QueryBuilders.queryStringQuery("search").defaultField(TEXT_FIELD));
448448
// this one retrieves docs 2, 3, 6, and 7
449449
// with scores 1, 0.5, 0.05882353, 0.03846154
450-
KnnRetrieverBuilder knnRetrieverBuilder = new KnnRetrieverBuilder(VECTOR_FIELD, new float[] { 2.0f }, null, 10, 100, null, null);
450+
KnnRetrieverBuilder knnRetrieverBuilder = new KnnRetrieverBuilder(VECTOR_FIELD, new float[] { 2.0f }, null, 10, 100, null,null, null);
451451
// final ranking with no-normalizer would be: doc 2, 6, 1, 4, 7, 3
452452
// doc 1: 10
453453
// doc 2: 9 + 20 + 1 = 30
@@ -537,7 +537,7 @@ public void testLinearExplainWithAnotherNestedLinear() {
537537
standard1.getPreFilterQueryBuilders().add(QueryBuilders.queryStringQuery("search").defaultField(TEXT_FIELD));
538538
// this one retrieves docs 2, 3, 6, and 7
539539
// with scores 1, 0.5, 0.05882353, 0.03846154
540-
KnnRetrieverBuilder knnRetrieverBuilder = new KnnRetrieverBuilder(VECTOR_FIELD, new float[] { 2.0f }, null, 10, 100, null, null);
540+
KnnRetrieverBuilder knnRetrieverBuilder = new KnnRetrieverBuilder(VECTOR_FIELD, new float[] { 2.0f }, null, 10, 100, null,null, null);
541541
// final ranking with no-normalizer would be: doc 2, 6, 1, 4, 7, 3
542542
// doc 1: 10
543543
// doc 2: 9 + 20 + 1 = 30
@@ -764,6 +764,7 @@ public void testLinearFiltersPropagatedToKnnQueryVectorBuilder() {
764764
10,
765765
10,
766766
null,
767+
null,
767768
null
768769
);
769770
source.retriever(
@@ -816,7 +817,7 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws
816817
throw new IllegalStateException("Should not be called");
817818
}
818819
};
819-
var knn = new KnnRetrieverBuilder("vector", null, vectorBuilder, 10, 10, null, null);
820+
var knn = new KnnRetrieverBuilder("vector", null, vectorBuilder, 10, 10, null,null, null);
820821
var standard = new StandardRetrieverBuilder(new KnnVectorQueryBuilder("vector", vectorBuilder, 10, 10, 10f, null));
821822
var rrf = new LinearRetrieverBuilder(
822823
List.of(new CompoundRetrieverBuilder.RetrieverSource(knn, null), new CompoundRetrieverBuilder.RetrieverSource(standard, null)),

x-pack/plugin/rank-rrf/src/internalClusterTest/java/org/elasticsearch/xpack/rank/rrf/RRFRetrieverBuilderIT.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@ public void testRRFPagination() {
190190
10,
191191
100,
192192
null,
193+
null,
193194
null
194195
);
195196
source.retriever(
@@ -241,7 +242,7 @@ public void testRRFWithAggs() {
241242
);
242243
standard1.getPreFilterQueryBuilders().add(QueryBuilders.queryStringQuery("search").defaultField(TEXT_FIELD));
243244
// this one retrieves docs 2, 3, 6, and 7
244-
KnnRetrieverBuilder knnRetrieverBuilder = new KnnRetrieverBuilder(VECTOR_FIELD, new float[] { 2.0f }, null, 10, 100, null, null);
245+
KnnRetrieverBuilder knnRetrieverBuilder = new KnnRetrieverBuilder(VECTOR_FIELD, new float[] { 2.0f }, null, 10, 100, null, null, null);
245246
source.retriever(
246247
new RRFRetrieverBuilder(
247248
Arrays.asList(
@@ -296,7 +297,7 @@ public void testRRFWithCollapse() {
296297
);
297298
standard1.getPreFilterQueryBuilders().add(QueryBuilders.queryStringQuery("search").defaultField(TEXT_FIELD));
298299
// this one retrieves docs 2, 3, 6, and 7
299-
KnnRetrieverBuilder knnRetrieverBuilder = new KnnRetrieverBuilder(VECTOR_FIELD, new float[] { 2.0f }, null, 10, 100, null, null);
300+
KnnRetrieverBuilder knnRetrieverBuilder = new KnnRetrieverBuilder(VECTOR_FIELD, new float[] { 2.0f }, null, 10, 100, null,null, null);
300301
source.retriever(
301302
new RRFRetrieverBuilder(
302303
Arrays.asList(
@@ -353,7 +354,7 @@ public void testRRFRetrieverWithCollapseAndAggs() {
353354
);
354355
standard1.getPreFilterQueryBuilders().add(QueryBuilders.queryStringQuery("search").defaultField(TEXT_FIELD));
355356
// this one retrieves docs 2, 3, 6, and 7
356-
KnnRetrieverBuilder knnRetrieverBuilder = new KnnRetrieverBuilder(VECTOR_FIELD, new float[] { 2.0f }, null, 10, 100, null, null);
357+
KnnRetrieverBuilder knnRetrieverBuilder = new KnnRetrieverBuilder(VECTOR_FIELD, new float[] { 2.0f }, null, 10, 100, null,null, null);
357358
source.retriever(
358359
new RRFRetrieverBuilder(
359360
Arrays.asList(
@@ -419,7 +420,7 @@ public void testMultipleRRFRetrievers() {
419420
);
420421
standard1.getPreFilterQueryBuilders().add(QueryBuilders.queryStringQuery("search").defaultField(TEXT_FIELD));
421422
// this one retrieves docs 2, 3, 6, and 7
422-
KnnRetrieverBuilder knnRetrieverBuilder = new KnnRetrieverBuilder(VECTOR_FIELD, new float[] { 2.0f }, null, 10, 100, null, null);
423+
KnnRetrieverBuilder knnRetrieverBuilder = new KnnRetrieverBuilder(VECTOR_FIELD, new float[] { 2.0f }, null, 10, 100, null,null, null);
423424
source.retriever(
424425
new RRFRetrieverBuilder(
425426
Arrays.asList(
@@ -438,7 +439,7 @@ public void testMultipleRRFRetrievers() {
438439
),
439440
// this one bring just doc 7 which should be ranked first eventually
440441
new CompoundRetrieverBuilder.RetrieverSource(
441-
new KnnRetrieverBuilder(VECTOR_FIELD, new float[] { 7.0f }, null, 1, 100, null, null),
442+
new KnnRetrieverBuilder(VECTOR_FIELD, new float[] { 7.0f }, null, 1, 100, null,null, null),
442443
null
443444
)
444445
),
@@ -485,7 +486,7 @@ public void testRRFExplainWithNamedRetrievers() {
485486
);
486487
standard1.getPreFilterQueryBuilders().add(QueryBuilders.queryStringQuery("search").defaultField(TEXT_FIELD));
487488
// this one retrieves docs 2, 3, 6, and 7
488-
KnnRetrieverBuilder knnRetrieverBuilder = new KnnRetrieverBuilder(VECTOR_FIELD, new float[] { 2.0f }, null, 10, 100, null, null);
489+
KnnRetrieverBuilder knnRetrieverBuilder = new KnnRetrieverBuilder(VECTOR_FIELD, new float[] { 2.0f }, null, 10, 100, null,null, null);
489490
source.retriever(
490491
new RRFRetrieverBuilder(
491492
Arrays.asList(
@@ -544,7 +545,7 @@ public void testRRFExplainWithAnotherNestedRRF() {
544545
);
545546
standard1.getPreFilterQueryBuilders().add(QueryBuilders.queryStringQuery("search").defaultField(TEXT_FIELD));
546547
// this one retrieves docs 2, 3, 6, and 7
547-
KnnRetrieverBuilder knnRetrieverBuilder = new KnnRetrieverBuilder(VECTOR_FIELD, new float[] { 2.0f }, null, 10, 100, null, null);
548+
KnnRetrieverBuilder knnRetrieverBuilder = new KnnRetrieverBuilder(VECTOR_FIELD, new float[] { 2.0f }, null, 10, 100, null,null, null);
548549

549550
RRFRetrieverBuilder nestedRRF = new RRFRetrieverBuilder(
550551
Arrays.asList(
@@ -765,6 +766,7 @@ public void testRRFFiltersPropagatedToKnnQueryVectorBuilder() {
765766
10,
766767
10,
767768
null,
769+
null,
768770
null
769771
);
770772
source.retriever(
@@ -818,7 +820,7 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws
818820
throw new IllegalStateException("Should not be called");
819821
}
820822
};
821-
var knn = new KnnRetrieverBuilder("vector", null, vectorBuilder, 10, 10, null, null);
823+
var knn = new KnnRetrieverBuilder("vector", null, vectorBuilder, 10, 10, null,null, null);
822824
var standard = new StandardRetrieverBuilder(new KnnVectorQueryBuilder("vector", vectorBuilder, 10, 10, 10f, null));
823825
var rrf = new RRFRetrieverBuilder(
824826
List.of(new CompoundRetrieverBuilder.RetrieverSource(knn, null), new CompoundRetrieverBuilder.RetrieverSource(standard, null)),

x-pack/plugin/rank-rrf/src/internalClusterTest/java/org/elasticsearch/xpack/rank/rrf/RRFRetrieverBuilderNestedDocsIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ public void testRRFRetrieverWithNestedQuery() {
149149
);
150150
standard1.getPreFilterQueryBuilders().add(QueryBuilders.queryStringQuery("search").defaultField(TEXT_FIELD));
151151
// this one retrieves docs 6
152-
KnnRetrieverBuilder knnRetrieverBuilder = new KnnRetrieverBuilder(VECTOR_FIELD, new float[] { 6.0f }, null, 1, 100, null, null);
152+
KnnRetrieverBuilder knnRetrieverBuilder = new KnnRetrieverBuilder(VECTOR_FIELD, new float[] { 6.0f }, null, 1, 100, null,null, null);
153153
source.retriever(
154154
new RRFRetrieverBuilder(
155155
Arrays.asList(

0 commit comments

Comments
 (0)