Browse Source

Fix a bug of describeCollection V2 (#928)

Signed-off-by: yhmo <yihua.mo@zilliz.com>
groot 1 year ago
parent
commit
2a5ca729d0

+ 2 - 1
src/main/java/io/milvus/v2/service/collection/CollectionService.java

@@ -20,6 +20,7 @@
 package io.milvus.v2.service.collection;
 
 import io.milvus.grpc.*;
+import io.milvus.param.ParamUtils;
 import io.milvus.v2.common.IndexParam;
 import io.milvus.v2.exception.ErrorCode;
 import io.milvus.v2.exception.MilvusClientException;
@@ -195,7 +196,7 @@ public class CollectionService extends BaseService {
                 .autoID(response.getSchema().getFieldsList().stream().anyMatch(FieldSchema::getAutoID))
                 .enableDynamicField(response.getSchema().getEnableDynamicField())
                 .fieldNames(response.getSchema().getFieldsList().stream().map(FieldSchema::getName).collect(java.util.stream.Collectors.toList()))
-                .vectorFieldName(response.getSchema().getFieldsList().stream().filter(fieldSchema -> fieldSchema.getDataType() == DataType.FloatVector || fieldSchema.getDataType() == DataType.BinaryVector).map(FieldSchema::getName).collect(java.util.stream.Collectors.toList()))
+                .vectorFieldNames(response.getSchema().getFieldsList().stream().filter(fieldSchema -> ParamUtils.isVectorDataType(fieldSchema.getDataType())).map(FieldSchema::getName).collect(java.util.stream.Collectors.toList()))
                 .primaryFieldName(response.getSchema().getFieldsList().stream().filter(FieldSchema::getIsPrimaryKey).map(FieldSchema::getName).collect(java.util.stream.Collectors.toList()).get(0))
                 .createTime(response.getCreatedTimestamp())
                 .build();

+ 1 - 1
src/main/java/io/milvus/v2/service/collection/response/DescribeCollectionResp.java

@@ -33,7 +33,7 @@ public class DescribeCollectionResp {
     private Long numOfPartitions;
 
     private List<String> fieldNames;
-    private List<String> vectorFieldName;
+    private List<String> vectorFieldNames;
     private String primaryFieldName;
     private Boolean enableDynamicField;
     private Boolean autoID;

+ 7 - 1
src/test/java/io/milvus/v2/client/MilvusClientV2DockerTest.java

@@ -444,7 +444,7 @@ class MilvusClientV2DockerTest {
         Assertions.assertEquals(randomCollectionName, descResp.getCollectionName());
         Assertions.assertEquals("dummy", descResp.getDescription());
         Assertions.assertEquals(2, descResp.getNumOfPartitions());
-        Assertions.assertEquals(1, descResp.getVectorFieldName().size());
+        Assertions.assertEquals(1, descResp.getVectorFieldNames().size());
         Assertions.assertEquals("id", descResp.getPrimaryFieldName());
         Assertions.assertTrue(descResp.getEnableDynamicField());
         Assertions.assertFalse(descResp.getAutoID());
@@ -733,6 +733,12 @@ class MilvusClientV2DockerTest {
                 .build();
         client.createCollection(requestCreate);
 
+        DescribeCollectionResp descResp = client.describeCollection(DescribeCollectionReq.builder()
+                .collectionName(randomCollectionName)
+                .build());
+        Assertions.assertEquals(16, descResp.getFieldNames().size());
+        Assertions.assertEquals(3, descResp.getVectorFieldNames().size());
+
         // insert rows
         long count = 10000;
         List<JsonObject> data = generateRandomData(collectionSchema, count);