Browse Source

Fix a bug of listIndexes() (#1416)

Signed-off-by: yhmo <yihua.mo@zilliz.com>
groot 1 month ago
parent
commit
1efd52a167

+ 5 - 5
sdk-core/src/main/java/io/milvus/v2/service/index/IndexService.java

@@ -178,11 +178,11 @@ public class IndexService extends BaseService {
             return new ArrayList<>();
             return new ArrayList<>();
         }
         }
         rpcUtils.handleResponse(title, response.getStatus());
         rpcUtils.handleResponse(title, response.getStatus());
-        List<String> indexNames = new ArrayList<>();
-        response.getIndexDescriptionsList().forEach(index -> {
-            indexNames.add(index.getIndexName());
-        });
-        return indexNames;
+
+        return response.getIndexDescriptionsList().stream()
+                .filter(desc -> request.getFieldName() == null || desc.getFieldName().equals(request.getFieldName()))
+                .map(IndexDescription::getIndexName)
+                .collect(Collectors.toList());
     }
     }
 
 
     private void WaitForIndexComplete(MilvusServiceGrpc.MilvusServiceBlockingStub blockingStub,
     private void WaitForIndexComplete(MilvusServiceGrpc.MilvusServiceBlockingStub blockingStub,

+ 15 - 1
sdk-core/src/test/java/io/milvus/v2/client/MilvusClientV2DockerTest.java

@@ -1289,6 +1289,7 @@ class MilvusClientV2DockerTest {
         extra.put("efConstruction",64);
         extra.put("efConstruction",64);
         indexes.add(IndexParam.builder()
         indexes.add(IndexParam.builder()
                 .fieldName("vector")
                 .fieldName("vector")
+                .indexName("abc")
                 .indexType(IndexParam.IndexType.HNSW)
                 .indexType(IndexParam.IndexType.HNSW)
                 .metricType(IndexParam.MetricType.COSINE)
                 .metricType(IndexParam.MetricType.COSINE)
                 .extraParams(extra)
                 .extraParams(extra)
@@ -1358,6 +1359,19 @@ class MilvusClientV2DockerTest {
         collProps = descCollResp.getProperties();
         collProps = descCollResp.getProperties();
         Assertions.assertFalse(collProps.containsKey("prop"));
         Assertions.assertFalse(collProps.containsKey("prop"));
 
 
+        // list indexes
+        List<String> names = client.listIndexes(ListIndexesReq.builder()
+                .collectionName(randomCollectionName)
+                .fieldName("vector")
+                .build());
+        Assertions.assertEquals(1, names.size());
+        Assertions.assertEquals("abc", names.get(0));
+
+        names = client.listIndexes(ListIndexesReq.builder()
+                .collectionName(randomCollectionName)
+                .build());
+        Assertions.assertEquals(2, names.size());
+
         // describe scalar index
         // describe scalar index
         DescribeIndexResp descResp = client.describeIndex(DescribeIndexReq.builder()
         DescribeIndexResp descResp = client.describeIndex(DescribeIndexReq.builder()
                 .collectionName(randomCollectionName)
                 .collectionName(randomCollectionName)
@@ -1419,7 +1433,7 @@ class MilvusClientV2DockerTest {
         // drop index
         // drop index
         client.dropIndex(DropIndexReq.builder()
         client.dropIndex(DropIndexReq.builder()
                 .collectionName(randomCollectionName)
                 .collectionName(randomCollectionName)
-                .indexName("vector")
+                .indexName("abc")
                 .build());
                 .build());
 
 
         IndexParam param = IndexParam.builder()
         IndexParam param = IndexParam.builder()