Skip to content

Commit 5694ae7

Browse files
committed
Fix KnnFunctionIT test
1 parent 0fb162a commit 5694ae7

File tree

1 file changed

+8
-27
lines changed
  • x-pack/plugin/esql/src/internalClusterTest/java/org/elasticsearch/xpack/esql/plugin

1 file changed

+8
-27
lines changed

x-pack/plugin/esql/src/internalClusterTest/java/org/elasticsearch/xpack/esql/plugin/KnnFunctionIT.java

Lines changed: 8 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,10 @@ public void testKnnDefaults() {
4444

4545
var query = String.format(Locale.ROOT, """
4646
FROM test METADATA _score
47-
| WHERE knn(vector, %s, 10)
47+
| WHERE knn(vector, %s)
4848
| KEEP id, floats, _score, vector
4949
| SORT _score DESC
50+
| LIMIT 10
5051
""", Arrays.toString(queryVector));
5152

5253
try (var resp = run(query)) {
@@ -72,45 +73,24 @@ public void testKnnDefaults() {
7273
}
7374
}
7475

75-
public void testKnnOptions() {
76-
float[] queryVector = new float[numDims];
77-
Arrays.fill(queryVector, 1.0f);
78-
79-
var query = String.format(Locale.ROOT, """
80-
FROM test METADATA _score
81-
| WHERE knn(vector, %s, 5)
82-
| KEEP id, floats, _score, vector
83-
| SORT _score DESC
84-
""", Arrays.toString(queryVector));
85-
86-
try (var resp = run(query)) {
87-
assertColumnNames(resp.columns(), List.of("id", "floats", "_score", "vector"));
88-
assertColumnTypes(resp.columns(), List.of("integer", "double", "double", "dense_vector"));
89-
90-
List<List<Object>> valuesList = EsqlTestUtils.getValuesList(resp);
91-
assertEquals(5, valuesList.size());
92-
}
93-
}
94-
9576
public void testKnnNonPushedDown() {
9677
float[] queryVector = new float[numDims];
9778
Arrays.fill(queryVector, 1.0f);
9879

99-
// TODO we need to decide what to do when / if user uses k for limit, as no more than k results will be returned from knn query
10080
var query = String.format(Locale.ROOT, """
10181
FROM test METADATA _score
102-
| WHERE knn(vector, %s, 5) OR id > 10
82+
| WHERE knn(vector, %s) OR id > 10
10383
| KEEP id, floats, _score, vector
10484
| SORT _score DESC
85+
| LIMIT 10
10586
""", Arrays.toString(queryVector));
10687

10788
try (var resp = run(query)) {
10889
assertColumnNames(resp.columns(), List.of("id", "floats", "_score", "vector"));
10990
assertColumnTypes(resp.columns(), List.of("integer", "double", "double", "dense_vector"));
11091

11192
List<List<Object>> valuesList = EsqlTestUtils.getValuesList(resp);
112-
// K = 5, 1 more for every id > 10
113-
assertEquals(5 + Math.max(0, numDocs - 10 - 1), valuesList.size());
93+
assertEquals(10, valuesList.size());
11494
}
11595
}
11696

@@ -121,7 +101,7 @@ public void testKnnWithPrefilters() {
121101
// We retrieve 5 from knn, but must be prefiltered with id > 5 or no result will be returned as it would be post-filtered
122102
var query = String.format(Locale.ROOT, """
123103
FROM test METADATA _score
124-
| WHERE knn(vector, %s, 5) AND id > 5
104+
| WHERE knn(vector, %s) AND id > 5
125105
| KEEP id, floats, _score, vector
126106
| SORT _score DESC
127107
| LIMIT 5
@@ -144,7 +124,8 @@ public void testKnnWithLookupJoin() {
144124
var query = String.format(Locale.ROOT, """
145125
FROM test
146126
| LOOKUP JOIN test_lookup ON id
147-
| WHERE KNN(lookup_vector, %s, 5) OR id > 10
127+
| WHERE KNN(lookup_vector, %s) OR id > 10
128+
| LIMIT 5
148129
""", Arrays.toString(queryVector));
149130

150131
var error = expectThrows(VerificationException.class, () -> run(query));

0 commit comments

Comments
 (0)