@@ -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