Browse Source

bug fix: support array for field schema in Client V2 api (#759)

Signed-off-by: Nian Liu <nian.liu@zilliz.com>
Nian Liu 1 year ago
parent
commit
c73d388b93

+ 2 - 0
src/main/java/io/milvus/v2/service/collection/request/CreateCollectionReq.java

@@ -119,5 +119,7 @@ public class CreateCollectionReq {
         private Boolean isPrimaryKey = Boolean.FALSE;
         @Builder.Default
         private Boolean autoID = Boolean.FALSE;
+        private DataType elementType;
+        private Integer maxCapacity;
     }
 }

+ 7 - 0
src/main/java/io/milvus/v2/utils/SchemaUtils.java

@@ -23,6 +23,13 @@ public class SchemaUtils {
         if(fieldSchema.getDataType() == io.milvus.v2.common.DataType.VarChar && fieldSchema.getMaxLength() != null){
             schema = schema.toBuilder().addTypeParams(KeyValuePair.newBuilder().setKey("max_length").setValue(String.valueOf(fieldSchema.getMaxLength())).build()).build();
         }
+        if (fieldSchema.getDataType() == io.milvus.v2.common.DataType.Array) {
+            schema = schema.toBuilder().addTypeParams(KeyValuePair.newBuilder().setKey("max_capacity").setValue(String.valueOf(fieldSchema.getMaxCapacity())).build()).build();
+            schema = schema.toBuilder().setElementType(DataType.valueOf(fieldSchema.getElementType().name())).build();
+            if (fieldSchema.getElementType() == io.milvus.v2.common.DataType.VarChar && fieldSchema.getMaxLength() != null) {
+                schema = schema.toBuilder().addTypeParams(KeyValuePair.newBuilder().setKey("max_length").setValue(String.valueOf(fieldSchema.getMaxLength())).build()).build();
+            }
+        }
         return schema;
     }