diff --git a/tests/milvus-java-test/src/main/java/com/TestSearchByIds.java b/tests/milvus-java-test/src/main/java/com/TestSearchByIds.java index 94a8cb2498..66767d54eb 100644 --- a/tests/milvus-java-test/src/main/java/com/TestSearchByIds.java +++ b/tests/milvus-java-test/src/main/java/com/TestSearchByIds.java @@ -14,6 +14,7 @@ public class TestSearchByIds { int n_list = 1024; int default_n_list = 16384; int nb = 10000; + int small_nb = 10; int n_probe = 20; int top_k = 10; int nq = 5; @@ -22,6 +23,7 @@ public class TestSearchByIds { IndexType defaultIndexType = IndexType.FLAT; List default_ids = Utils.toListIds(1111); List> vectors = Utils.genVectors(nb, dimension, true); + List> small_vectors = Utils.genVectors(small_nb, dimension, true); List vectorsBinary = Utils.genBinaryVectors(nb, dimension); String indexParam = Utils.setIndexParam(n_list); public String searchParamStr = Utils.setSearchParam(n_probe); @@ -62,8 +64,22 @@ public class TestSearchByIds { List> res_search = client.searchByIds(searchParam).getQueryResultsList(); assert (client.searchByIds(searchParam).getResponse().ok()); Assert.assertEquals(res_search.get(0).size(), 0); -// Assert.assertEquals(res_search.size(), default_ids.size()); -// Assert.assertEquals(res_search.get(0).get(0).getVectorId(), -1); + } + + @Test(dataProvider = "Collection", dataProviderClass = MainClass.class) + public void test_search_count_lt_top_k(MilvusClient client, String collectionName) { + int top_k = 100; + InsertParam insertParam = new InsertParam.Builder(collectionName).withFloatVectors(small_vectors).build(); + InsertResponse res_insert = client.insert(insertParam); + client.flush(collectionName); + SearchByIdsParam searchParam = new SearchByIdsParam.Builder(collectionName) + .withParamsInJson(searchParamStr) + .withTopK(top_k) + .withIDs(Utils.toListIds(res_insert.getVectorIds().get(0))) + .build(); + List> res_search = client.searchByIds(searchParam).getQueryResultsList(); + // reason: "Failed to query by id in collection L2_FmVKbqSZaN, result doesn\'t match id count" + assert (!client.searchByIds(searchParam).getResponse().ok()); } @Test(dataProvider = "Collection", dataProviderClass = MainClass.class) diff --git a/tests/milvus-java-test/src/main/java/com/TestSearchVectors.java b/tests/milvus-java-test/src/main/java/com/TestSearchVectors.java index 750296c094..1e4c2d5f1e 100644 --- a/tests/milvus-java-test/src/main/java/com/TestSearchVectors.java +++ b/tests/milvus-java-test/src/main/java/com/TestSearchVectors.java @@ -15,6 +15,7 @@ public class TestSearchVectors { int n_list = 1024; int default_n_list = 16384; int nb = 10000; + int small_nb = 10; int n_probe = 20; int top_k = 10; int nq = 5; @@ -22,6 +23,7 @@ public class TestSearchVectors { IndexType indexType = IndexType.IVF_SQ8; IndexType defaultIndexType = IndexType.FLAT; List> vectors = Utils.genVectors(nb, dimension, true); + List> small_vectors = Utils.genVectors(small_nb, dimension, true); List vectorsBinary = Utils.genBinaryVectors(nb, dimension); List> queryVectors = vectors.subList(0, nq); List queryVectorsBinary = vectorsBinary.subList(0, nq); @@ -190,6 +192,21 @@ public class TestSearchVectors { assert (!res_search.getResponse().ok()); } + @Test(dataProvider = "Collection", dataProviderClass = MainClass.class) + public void test_search_count_lt_top_k(MilvusClient client, String collectionName) { + int top_k_new = 100; + InsertParam insertParam = new InsertParam.Builder(collectionName).withFloatVectors(small_vectors).build(); + client.insert(insertParam); + client.flush(collectionName); + SearchParam searchParam = new SearchParam.Builder(collectionName) + .withFloatVectors(queryVectors) + .withParamsInJson(searchParamStr) + .withTopK(top_k_new).build(); + List> res_search = client.search(searchParam).getQueryResultsList(); + Assert.assertEquals(res_search.size(), nq); + Assert.assertEquals(res_search.get(0).size(), small_vectors.size()); + } + @Test(dataProvider = "Collection", dataProviderClass = MainClass.class) public void test_search_invalid_top_k(MilvusClient client, String collectionName) { int top_k_new = 0;