Browse Source

merge CreateCollectionWithSchemaReq.java with CreateCollectionReq to make create Collection unify

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

+ 27 - 29
src/main/java/io/milvus/v2/client/MilvusClientV2.java

@@ -109,29 +109,27 @@ public class MilvusClientV2 {
 
 
     //Collection Operations
     //Collection Operations
     /**
     /**
-     * Fast Creates a collection in Milvus.
-     *
+     * Creates a collection in Milvus.
+     * @param request create collection request
      */
      */
     public void createCollection(CreateCollectionReq request) {
     public void createCollection(CreateCollectionReq request) {
         collectionService.createCollection(this.blockingStub, request);
         collectionService.createCollection(this.blockingStub, request);
     }
     }
 
 
     /**
     /**
-     * Creates a collection with Schema in Milvus.
-     *
-     * @param request create collection request
+     * Creates a collection schema.
+     * @param enableDynamicField enable dynamic field
+     * @param description collection description
+     * @return CreateCollectionReq.CollectionSchema
      */
      */
-    public void createCollectionWithSchema(CreateCollectionWithSchemaReq request) {
-        collectionService.createCollectionWithSchema(this.blockingStub, request);
-    }
-    public CreateCollectionWithSchemaReq.CollectionSchema createSchema(Boolean enableDynamicField, String description) {
+    public CreateCollectionReq.CollectionSchema createSchema(Boolean enableDynamicField, String description) {
         return collectionService.createSchema(enableDynamicField, description);
         return collectionService.createSchema(enableDynamicField, description);
     }
     }
 
 
     /**
     /**
      * list milvus collections
      * list milvus collections
      *
      *
-     * @return {status:result code, data:RpcStatus{msg: result message}}
+     * @return List<String> collection names
      */
      */
     public ListCollectionsResp listCollections() {
     public ListCollectionsResp listCollections() {
         return collectionService.listCollections(this.blockingStub);
         return collectionService.listCollections(this.blockingStub);
@@ -149,7 +147,7 @@ public class MilvusClientV2 {
      * Checks whether a collection exists in Milvus.
      * Checks whether a collection exists in Milvus.
      *
      *
      * @param request has collection request
      * @param request has collection request
-     * @return {status:result code, data:RpcStatus{msg: result message}}
+     * @return Boolean
      */
      */
     public Boolean hasCollection(HasCollectionReq request) {
     public Boolean hasCollection(HasCollectionReq request) {
         return collectionService.hasCollection(this.blockingStub, request);
         return collectionService.hasCollection(this.blockingStub, request);
@@ -158,7 +156,7 @@ public class MilvusClientV2 {
      * Gets the collection info in Milvus.
      * Gets the collection info in Milvus.
      *
      *
      * @param request describe collection request
      * @param request describe collection request
-     * @return {status:result code, data:RpcStatus{msg: result message}}
+     * @return DescribeCollectionResp
      */
      */
     public DescribeCollectionResp describeCollection(DescribeCollectionReq request) {
     public DescribeCollectionResp describeCollection(DescribeCollectionReq request) {
         return collectionService.describeCollection(this.blockingStub, request);
         return collectionService.describeCollection(this.blockingStub, request);
@@ -167,7 +165,7 @@ public class MilvusClientV2 {
      * get collection stats for a collection in Milvus.
      * get collection stats for a collection in Milvus.
      *
      *
      * @param request get collection stats request
      * @param request get collection stats request
-     * @return {status:result code, data:RpcStatus{msg: result message}}
+     * @return GetCollectionStatsResp
      */
      */
     public GetCollectionStatsResp getCollectionStats(GetCollectionStatsReq request) {
     public GetCollectionStatsResp getCollectionStats(GetCollectionStatsReq request) {
         return collectionService.getCollectionStats(this.blockingStub, request);
         return collectionService.getCollectionStats(this.blockingStub, request);
@@ -200,7 +198,7 @@ public class MilvusClientV2 {
      * Checks whether a collection is loaded in Milvus.
      * Checks whether a collection is loaded in Milvus.
      *
      *
      * @param request get load state request
      * @param request get load state request
-     * @return {status:result code, data:RpcStatus{msg: result message}}
+     * @return Boolean
      */
      */
     public Boolean getLoadState(GetLoadStateReq request) {
     public Boolean getLoadState(GetLoadStateReq request) {
         return collectionService.getLoadState(this.blockingStub, request);
         return collectionService.getLoadState(this.blockingStub, request);
@@ -227,7 +225,7 @@ public class MilvusClientV2 {
      * Checks whether an index exists for a specified field in a collection in Milvus.
      * Checks whether an index exists for a specified field in a collection in Milvus.
      *
      *
      * @param request describe index request
      * @param request describe index request
-     * @return {status:result code, data:RpcStatus{msg: result message}}
+     * @return DescribeIndexResp
      */
      */
     public DescribeIndexResp describeIndex(DescribeIndexReq request) {
     public DescribeIndexResp describeIndex(DescribeIndexReq request) {
         return indexService.describeIndex(this.blockingStub, request);
         return indexService.describeIndex(this.blockingStub, request);
@@ -239,7 +237,7 @@ public class MilvusClientV2 {
      * Inserts vectors into a collection in Milvus.
      * Inserts vectors into a collection in Milvus.
      *
      *
      * @param request insert request
      * @param request insert request
-     * @return {status:result code, data:RpcStatus{msg: result message}}
+     * @return InsertResp
      */
      */
     public InsertResp insert(InsertReq request) {
     public InsertResp insert(InsertReq request) {
         return vectorService.insert(this.blockingStub, request);
         return vectorService.insert(this.blockingStub, request);
@@ -248,7 +246,7 @@ public class MilvusClientV2 {
      * Upsert vectors into a collection in Milvus.
      * Upsert vectors into a collection in Milvus.
      *
      *
      * @param request upsert request
      * @param request upsert request
-     * @return {status:result code, data:RpcStatus{msg: result message}}
+     * @return UpsertResp
      */
      */
     public UpsertResp upsert(UpsertReq request) {
     public UpsertResp upsert(UpsertReq request) {
         return vectorService.upsert(this.blockingStub, request);
         return vectorService.upsert(this.blockingStub, request);
@@ -257,7 +255,7 @@ public class MilvusClientV2 {
      * Deletes vectors in a collection in Milvus.
      * Deletes vectors in a collection in Milvus.
      *
      *
      * @param request delete request
      * @param request delete request
-     * @return {status:result code, data:RpcStatus{msg: result message}}
+     * @return DeleteResp
      */
      */
     public DeleteResp delete(DeleteReq request) {
     public DeleteResp delete(DeleteReq request) {
         return vectorService.delete(this.blockingStub, request);
         return vectorService.delete(this.blockingStub, request);
@@ -266,7 +264,7 @@ public class MilvusClientV2 {
      * Gets vectors in a collection in Milvus.
      * Gets vectors in a collection in Milvus.
      *
      *
      * @param request get request
      * @param request get request
-     * @return {status:result code, data:RpcStatus{msg: result message}}
+     * @return GetResp
      */
      */
     public GetResp get(GetReq request) {
     public GetResp get(GetReq request) {
         return vectorService.get(this.blockingStub, request);
         return vectorService.get(this.blockingStub, request);
@@ -276,7 +274,7 @@ public class MilvusClientV2 {
      * Queries vectors in a collection in Milvus.
      * Queries vectors in a collection in Milvus.
      *
      *
      * @param request query request
      * @param request query request
-     * @return {status:result code, data:RpcStatus{msg: result message}}
+     * @return QueryResp
      */
      */
     public QueryResp query(QueryReq request) {
     public QueryResp query(QueryReq request) {
         return vectorService.query(this.blockingStub, request);
         return vectorService.query(this.blockingStub, request);
@@ -285,7 +283,7 @@ public class MilvusClientV2 {
      * Searches vectors in a collection in Milvus.
      * Searches vectors in a collection in Milvus.
      *
      *
      * @param request search request
      * @param request search request
-     * @return {status:result code, data:RpcStatus{msg: result message}}
+     * @return SearchResp
      */
      */
     public SearchResp search(SearchReq request) {
     public SearchResp search(SearchReq request) {
         return vectorService.search(this.blockingStub, request);
         return vectorService.search(this.blockingStub, request);
@@ -314,7 +312,7 @@ public class MilvusClientV2 {
      * Checks whether a partition exists in a collection in Milvus.
      * Checks whether a partition exists in a collection in Milvus.
      *
      *
      * @param request has partition request
      * @param request has partition request
-     * @return {status:result code, data:RpcStatus{msg: result message}}
+     * @return Boolean
      */
      */
     public Boolean hasPartition(HasPartitionReq request) {
     public Boolean hasPartition(HasPartitionReq request) {
         return partitionService.hasPartition(this.blockingStub, request);
         return partitionService.hasPartition(this.blockingStub, request);
@@ -324,7 +322,7 @@ public class MilvusClientV2 {
      * Lists all partitions in a collection in Milvus.
      * Lists all partitions in a collection in Milvus.
      *
      *
      * @param request list partitions request
      * @param request list partitions request
-     * @return {status:result code, data:RpcStatus{msg: result message}}
+     * @return List<String> partition names
      */
      */
     public List<String> listPartitions(ListPartitionsReq request) {
     public List<String> listPartitions(ListPartitionsReq request) {
         return partitionService.listPartitions(this.blockingStub, request);
         return partitionService.listPartitions(this.blockingStub, request);
@@ -351,7 +349,7 @@ public class MilvusClientV2 {
     /**
     /**
      * list users
      * list users
      *
      *
-     * @return {status:result code, data:RpcStatus{msg: result message}}
+     * @return List<String> usernames
      */
      */
     public List<String> listUsers() {
     public List<String> listUsers() {
         return userService.listUsers(this.blockingStub);
         return userService.listUsers(this.blockingStub);
@@ -360,7 +358,7 @@ public class MilvusClientV2 {
      * describe user
      * describe user
      *
      *
      * @param request describe user request
      * @param request describe user request
-     * @return {status:result code, data:RpcStatus{msg: result message}}
+     * @return DescribeUserResp
      */
      */
     public DescribeUserResp describeUser(DescribeUserReq request) {
     public DescribeUserResp describeUser(DescribeUserReq request) {
         return userService.describeUser(this.blockingStub, request);
         return userService.describeUser(this.blockingStub, request);
@@ -393,7 +391,7 @@ public class MilvusClientV2 {
     /**
     /**
      * list roles
      * list roles
      *
      *
-     * @return {status:result code, data:List<String>{msg: result message}}
+     * @return List<String> role names
      */
      */
     public List<String> listRoles() {
     public List<String> listRoles() {
         return roleService.listRoles(this.blockingStub);
         return roleService.listRoles(this.blockingStub);
@@ -402,7 +400,7 @@ public class MilvusClientV2 {
      * describe role
      * describe role
      *
      *
      * @param request describe role request
      * @param request describe role request
-     * @return {status:result code, data:DescribeRoleResp{msg: result message}}
+     * @return DescribeRoleResp
      */
      */
     public DescribeRoleResp describeRole(DescribeRoleReq request) {
     public DescribeRoleResp describeRole(DescribeRoleReq request) {
         return roleService.describeRole(this.blockingStub, request);
         return roleService.describeRole(this.blockingStub, request);
@@ -479,7 +477,7 @@ public class MilvusClientV2 {
     /**
     /**
      * list aliases
      * list aliases
      *
      *
-     * @return {status:result code, data:List<String>{msg: result message}}
+     * @return List<String> alias names
      */
      */
     public ListAliasResp listAliases() {
     public ListAliasResp listAliases() {
         return utilityService.listAliases(this.blockingStub);
         return utilityService.listAliases(this.blockingStub);
@@ -487,7 +485,7 @@ public class MilvusClientV2 {
     /**
     /**
      * describe aliases
      * describe aliases
      *
      *
-     * @return {status:result code, data:DescribeAliasResp{msg: result message}}
+     * @return DescribeAliasResp
      */
      */
     public DescribeAliasResp describeAlias(String alias) {
     public DescribeAliasResp describeAlias(String alias) {
         return utilityService.describeAlias(this.blockingStub, alias);
         return utilityService.describeAlias(this.blockingStub, alias);

+ 0 - 1
src/main/java/io/milvus/v2/common/ConsistencyLevel.java

@@ -1,6 +1,5 @@
 package io.milvus.v2.common;
 package io.milvus.v2.common;
 
 
-import io.milvus.common.clientenum.ConsistencyLevelEnum;
 import lombok.Getter;
 import lombok.Getter;
 @Getter
 @Getter
 public enum ConsistencyLevel{
 public enum ConsistencyLevel{

+ 4 - 4
src/main/java/io/milvus/v2/examples/Simple_Schema.java

@@ -5,7 +5,7 @@ import io.milvus.v2.client.ConnectConfig;
 import io.milvus.v2.client.MilvusClientV2;
 import io.milvus.v2.client.MilvusClientV2;
 import io.milvus.v2.common.DataType;
 import io.milvus.v2.common.DataType;
 import io.milvus.v2.common.IndexParam;
 import io.milvus.v2.common.IndexParam;
-import io.milvus.v2.service.collection.request.CreateCollectionWithSchemaReq;
+import io.milvus.v2.service.collection.request.CreateCollectionReq;
 import io.milvus.v2.service.collection.request.DropCollectionReq;
 import io.milvus.v2.service.collection.request.DropCollectionReq;
 import io.milvus.v2.service.collection.request.HasCollectionReq;
 import io.milvus.v2.service.collection.request.HasCollectionReq;
 import io.milvus.v2.service.collection.request.LoadCollectionReq;
 import io.milvus.v2.service.collection.request.LoadCollectionReq;
@@ -41,16 +41,16 @@ public class Simple_Schema {
             TimeUnit.SECONDS.sleep(1);
             TimeUnit.SECONDS.sleep(1);
         }
         }
         // create collection
         // create collection
-        CreateCollectionWithSchemaReq.CollectionSchema collectionSchema = client.createSchema(Boolean.TRUE, "");
+        CreateCollectionReq.CollectionSchema collectionSchema = client.createSchema(Boolean.TRUE, "");
         collectionSchema.addPrimaryField("id", DataType.Int64, Boolean.TRUE, Boolean.FALSE);
         collectionSchema.addPrimaryField("id", DataType.Int64, Boolean.TRUE, Boolean.FALSE);
         collectionSchema.addVectorField("vector", DataType.FloatVector, dim);
         collectionSchema.addVectorField("vector", DataType.FloatVector, dim);
         collectionSchema.addScalarField("num", DataType.Int32);
         collectionSchema.addScalarField("num", DataType.Int32);
 
 
-        CreateCollectionWithSchemaReq createCollectionReq = CreateCollectionWithSchemaReq.builder()
+        CreateCollectionReq createCollectionReq = CreateCollectionReq.builder()
                 .collectionName(collectionName)
                 .collectionName(collectionName)
                 .collectionSchema(collectionSchema)
                 .collectionSchema(collectionSchema)
                 .build();
                 .build();
-        client.createCollectionWithSchema(createCollectionReq);
+        client.createCollection(createCollectionReq);
         //create index
         //create index
         IndexParam indexParam = IndexParam.builder()
         IndexParam indexParam = IndexParam.builder()
                 .fieldName("vector")
                 .fieldName("vector")

+ 10 - 5
src/main/java/io/milvus/v2/service/collection/CollectionService.java

@@ -17,6 +17,11 @@ public class CollectionService extends BaseService {
     public IndexService indexService = new IndexService();
     public IndexService indexService = new IndexService();
 
 
     public void createCollection(MilvusServiceGrpc.MilvusServiceBlockingStub blockingStub, CreateCollectionReq request) {
     public void createCollection(MilvusServiceGrpc.MilvusServiceBlockingStub blockingStub, CreateCollectionReq request) {
+        if (request.getCollectionSchema() != null) {
+            //create collections with schema
+            createCollectionWithSchema(blockingStub, request);
+            return;
+        }
         String title = String.format("CreateCollectionRequest collectionName:%s", request.getCollectionName());
         String title = String.format("CreateCollectionRequest collectionName:%s", request.getCollectionName());
         FieldSchema vectorSchema = FieldSchema.newBuilder()
         FieldSchema vectorSchema = FieldSchema.newBuilder()
                 .setName(request.getVectorFieldName())
                 .setName(request.getVectorFieldName())
@@ -39,7 +44,7 @@ public class CollectionService extends BaseService {
                 .setName(request.getCollectionName())
                 .setName(request.getCollectionName())
                 .addFields(vectorSchema)
                 .addFields(vectorSchema)
                 .addFields(idSchema)
                 .addFields(idSchema)
-                .setEnableDynamicField(Boolean.TRUE)
+                .setEnableDynamicField(request.getEnableDynamicField())
                 .build();
                 .build();
 
 
 
 
@@ -65,7 +70,7 @@ public class CollectionService extends BaseService {
         loadCollection(blockingStub, LoadCollectionReq.builder().collectionName(request.getCollectionName()).build());
         loadCollection(blockingStub, LoadCollectionReq.builder().collectionName(request.getCollectionName()).build());
     }
     }
 
 
-    public void createCollectionWithSchema(MilvusServiceGrpc.MilvusServiceBlockingStub blockingStub, CreateCollectionWithSchemaReq request) {
+    public void createCollectionWithSchema(MilvusServiceGrpc.MilvusServiceBlockingStub blockingStub, CreateCollectionReq request) {
         String title = String.format("CreateCollectionRequest collectionName:%s", request.getCollectionName());
         String title = String.format("CreateCollectionRequest collectionName:%s", request.getCollectionName());
 
 
         //convert CollectionSchema to io.milvus.grpc.CollectionSchema
         //convert CollectionSchema to io.milvus.grpc.CollectionSchema
@@ -74,7 +79,7 @@ public class CollectionService extends BaseService {
                 .setDescription(request.getCollectionSchema().getDescription())
                 .setDescription(request.getCollectionSchema().getDescription())
                 .setEnableDynamicField(request.getCollectionSchema().getEnableDynamicField())
                 .setEnableDynamicField(request.getCollectionSchema().getEnableDynamicField())
                 .build();
                 .build();
-        for (CreateCollectionWithSchemaReq.FieldSchema fieldSchema : request.getCollectionSchema().getFieldSchemaList()) {
+        for (CreateCollectionReq.FieldSchema fieldSchema : request.getCollectionSchema().getFieldSchemaList()) {
             grpcSchema = grpcSchema.toBuilder().addFields(SchemaUtils.convertToGrpcFieldSchema(fieldSchema)).build();
             grpcSchema = grpcSchema.toBuilder().addFields(SchemaUtils.convertToGrpcFieldSchema(fieldSchema)).build();
         }
         }
 
 
@@ -212,8 +217,8 @@ public class CollectionService extends BaseService {
         return getCollectionStatsResp;
         return getCollectionStatsResp;
     }
     }
 
 
-    public CreateCollectionWithSchemaReq.CollectionSchema createSchema(Boolean enableDynamicField, String description) {
-        return CreateCollectionWithSchemaReq.CollectionSchema.builder()
+    public CreateCollectionReq.CollectionSchema createSchema(Boolean enableDynamicField, String description) {
+        return CreateCollectionReq.CollectionSchema.builder()
                 .enableDynamicField(enableDynamicField)
                 .enableDynamicField(enableDynamicField)
                 .description(description)
                 .description(description)
                 .build();
                 .build();

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

@@ -6,6 +6,9 @@ import lombok.Builder;
 import lombok.Data;
 import lombok.Data;
 import lombok.experimental.SuperBuilder;
 import lombok.experimental.SuperBuilder;
 
 
+import java.util.ArrayList;
+import java.util.List;
+
 @Data
 @Data
 @SuperBuilder
 @SuperBuilder
 public class CreateCollectionReq {
 public class CreateCollectionReq {
@@ -24,4 +27,97 @@ public class CreateCollectionReq {
     private String metricType = IndexParam.MetricType.IP.name();
     private String metricType = IndexParam.MetricType.IP.name();
     @Builder.Default
     @Builder.Default
     private Boolean autoID = Boolean.FALSE;
     private Boolean autoID = Boolean.FALSE;
+    @Builder.Default
+    private Boolean enableDynamicField = Boolean.TRUE;
+
+    // create collections with schema
+    private CollectionSchema collectionSchema;
+
+    private List<IndexParam> indexParams;
+
+    @Data
+    @SuperBuilder
+    public static class CollectionSchema {
+        @Builder.Default
+        private List<CreateCollectionReq.FieldSchema> fieldSchemaList = new ArrayList<>();
+        @Builder.Default
+        private String description = "";
+        private Boolean enableDynamicField;
+
+        public CreateCollectionReq.FieldSchema getField(String fieldName) {
+            for (CreateCollectionReq.FieldSchema field : fieldSchemaList) {
+                if (field.getName().equals(fieldName)) {
+                    return field;
+                }
+            }
+            return null;
+        }
+
+        public void addPrimaryField(String fieldName, DataType dataType, Boolean isPrimaryKey, Boolean autoID) {
+            // primary key field
+            CreateCollectionReq.FieldSchema fieldSchema = CreateCollectionReq.FieldSchema.builder()
+                    .name(fieldName)
+                    .dataType(dataType)
+                    .isPrimaryKey(isPrimaryKey)
+                    .autoID(autoID)
+                    .build();
+            fieldSchemaList.add(fieldSchema);
+        }
+
+        public void addPrimaryField(String fieldName, DataType dataType, Integer maxLength, Boolean isPrimaryKey, Boolean autoID) {
+            // primary key field
+            CreateCollectionReq.FieldSchema fieldSchema = CreateCollectionReq.FieldSchema.builder()
+                    .name(fieldName)
+                    .dataType(dataType)
+                    .maxLength(maxLength)
+                    .isPrimaryKey(isPrimaryKey)
+                    .autoID(autoID)
+                    .build();
+            fieldSchemaList.add(fieldSchema);
+        }
+
+        public void addVectorField(String fieldName, DataType dataType, Integer dimension) {
+            // vector field
+            CreateCollectionReq.FieldSchema fieldSchema = CreateCollectionReq.FieldSchema.builder()
+                    .name(fieldName)
+                    .dataType(dataType)
+                    .dimension(dimension)
+                    .build();
+            fieldSchemaList.add(fieldSchema);
+        }
+
+        public void addScalarField(String fieldName, DataType dataType, Integer maxLength) {
+            // scalar field
+            CreateCollectionReq.FieldSchema fieldSchema = CreateCollectionReq.FieldSchema.builder()
+                    .name(fieldName)
+                    .dataType(dataType)
+                    .maxLength(maxLength)
+                    .build();
+            fieldSchemaList.add(fieldSchema);
+        }
+
+        public void addScalarField(String fieldName, DataType dataType) {
+            // scalar field
+            CreateCollectionReq.FieldSchema fieldSchema = CreateCollectionReq.FieldSchema.builder()
+                    .name(fieldName)
+                    .dataType(dataType)
+                    .build();
+            fieldSchemaList.add(fieldSchema);
+        }
+    }
+
+    @Data
+    @SuperBuilder
+    public static class FieldSchema {
+        //TODO: check here
+        private String name;
+        private DataType dataType;
+        @Builder.Default
+        private Integer maxLength = 65535;
+        private Integer dimension;
+        @Builder.Default
+        private Boolean isPrimaryKey = Boolean.FALSE;
+        @Builder.Default
+        private Boolean autoID = Boolean.FALSE;
+    }
 }
 }

+ 0 - 101
src/main/java/io/milvus/v2/service/collection/request/CreateCollectionWithSchemaReq.java

@@ -1,101 +0,0 @@
-package io.milvus.v2.service.collection.request;
-
-import io.milvus.v2.common.DataType;
-import io.milvus.v2.common.IndexParam;
-import lombok.Builder;
-import lombok.Data;
-import lombok.experimental.SuperBuilder;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@SuperBuilder
-@Data
-public class CreateCollectionWithSchemaReq {
-    private String collectionName;
-    private CollectionSchema collectionSchema;
-    private List<IndexParam> indexParams;
-
-    @Data
-    @SuperBuilder
-    public static class CollectionSchema {
-        @Builder.Default
-        private List<FieldSchema> fieldSchemaList = new ArrayList<>();
-        @Builder.Default
-        private String description = "";
-        private Boolean enableDynamicField;
-
-        public FieldSchema getField(String fieldName) {
-            for (FieldSchema field : fieldSchemaList) {
-                if (field.getName().equals(fieldName)) {
-                    return field;
-                }
-            }
-            return null;
-        }
-        public void addPrimaryField(String fieldName, DataType dataType, Boolean isPrimaryKey, Boolean autoID) {
-            // primary key field
-            FieldSchema fieldSchema = FieldSchema.builder()
-                    .name(fieldName)
-                    .dataType(dataType)
-                    .isPrimaryKey(isPrimaryKey)
-                    .autoID(autoID)
-                    .build();
-            fieldSchemaList.add(fieldSchema);
-        }
-        public void addPrimaryField(String fieldName, DataType dataType, Integer maxLength, Boolean isPrimaryKey, Boolean autoID) {
-            // primary key field
-            FieldSchema fieldSchema = FieldSchema.builder()
-                    .name(fieldName)
-                    .dataType(dataType)
-                    .maxLength(maxLength)
-                    .isPrimaryKey(isPrimaryKey)
-                    .autoID(autoID)
-                    .build();
-            fieldSchemaList.add(fieldSchema);
-        }
-        public void addVectorField(String fieldName, DataType dataType, Integer dimension) {
-            // vector field
-            FieldSchema fieldSchema = FieldSchema.builder()
-                    .name(fieldName)
-                    .dataType(dataType)
-                    .dimension(dimension)
-                    .build();
-            fieldSchemaList.add(fieldSchema);
-        }
-        public void addScalarField(String fieldName, DataType dataType, Integer maxLength) {
-            // scalar field
-            FieldSchema fieldSchema = FieldSchema.builder()
-                    .name(fieldName)
-                    .dataType(dataType)
-                    .maxLength(maxLength)
-                    .build();
-            fieldSchemaList.add(fieldSchema);
-        }
-        public void addScalarField(String fieldName, DataType dataType) {
-            // scalar field
-            FieldSchema fieldSchema = FieldSchema.builder()
-                    .name(fieldName)
-                    .dataType(dataType)
-                    .build();
-            fieldSchemaList.add(fieldSchema);
-        }
-    }
-
-    @Data
-    @SuperBuilder
-    public static class FieldSchema {
-        //TODO: check here
-        private String name;
-        private DataType dataType;
-        @Builder.Default
-        private Integer maxLength = 65535;
-        private Integer dimension;
-        @Builder.Default
-        private Boolean isPrimaryKey = Boolean.FALSE;
-        @Builder.Default
-        private Boolean autoID = Boolean.FALSE;
-    }
-
-
-}

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

@@ -1,6 +1,6 @@
 package io.milvus.v2.service.collection.response;
 package io.milvus.v2.service.collection.response;
 
 
-import io.milvus.v2.service.collection.request.CreateCollectionWithSchemaReq;
+import io.milvus.v2.service.collection.request.CreateCollectionReq;
 import lombok.Data;
 import lombok.Data;
 import lombok.experimental.SuperBuilder;
 import lombok.experimental.SuperBuilder;
 
 
@@ -19,6 +19,6 @@ public class DescribeCollectionResp {
     private Boolean enableDynamicField;
     private Boolean enableDynamicField;
     private Boolean autoID;
     private Boolean autoID;
 
 
-    private CreateCollectionWithSchemaReq.CollectionSchema collectionSchema;
+    private CreateCollectionReq.CollectionSchema collectionSchema;
     private Long createTime;
     private Long createTime;
 }
 }

+ 4 - 3
src/main/java/io/milvus/v2/utils/ClientUtils.java

@@ -5,12 +5,12 @@ import io.grpc.ManagedChannelBuilder;
 import io.grpc.Metadata;
 import io.grpc.Metadata;
 import io.grpc.netty.shaded.io.grpc.netty.GrpcSslContexts;
 import io.grpc.netty.shaded.io.grpc.netty.GrpcSslContexts;
 import io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder;
 import io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder;
+import io.grpc.netty.shaded.io.netty.handler.ssl.SslContext;
 import io.grpc.stub.MetadataUtils;
 import io.grpc.stub.MetadataUtils;
 import io.milvus.grpc.ListDatabasesRequest;
 import io.milvus.grpc.ListDatabasesRequest;
 import io.milvus.grpc.ListDatabasesResponse;
 import io.milvus.grpc.ListDatabasesResponse;
 import io.milvus.grpc.MilvusServiceGrpc;
 import io.milvus.grpc.MilvusServiceGrpc;
 import io.milvus.v2.client.ConnectConfig;
 import io.milvus.v2.client.ConnectConfig;
-import io.grpc.netty.shaded.io.netty.handler.ssl.SslContext;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
@@ -28,8 +28,9 @@ public class ClientUtils {
         ManagedChannel channel = null;
         ManagedChannel channel = null;
 
 
         Metadata metadata = new Metadata();
         Metadata metadata = new Metadata();
-
-        metadata.put(Metadata.Key.of("authorization", Metadata.ASCII_STRING_MARSHALLER), Base64.getEncoder().encodeToString(connectConfig.getAuthorization().getBytes(StandardCharsets.UTF_8)));
+        if (connectConfig.getAuthorization() != null) {
+            metadata.put(Metadata.Key.of("authorization", Metadata.ASCII_STRING_MARSHALLER), Base64.getEncoder().encodeToString(connectConfig.getAuthorization().getBytes(StandardCharsets.UTF_8)));
+        }
         if (StringUtils.isNotEmpty(connectConfig.getDbName())) {
         if (StringUtils.isNotEmpty(connectConfig.getDbName())) {
             metadata.put(Metadata.Key.of("dbname", Metadata.ASCII_STRING_MARSHALLER), connectConfig.getDbName());
             metadata.put(Metadata.Key.of("dbname", Metadata.ASCII_STRING_MARSHALLER), connectConfig.getDbName());
         }
         }

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

@@ -4,13 +4,13 @@ import io.milvus.grpc.CollectionSchema;
 import io.milvus.grpc.DataType;
 import io.milvus.grpc.DataType;
 import io.milvus.grpc.FieldSchema;
 import io.milvus.grpc.FieldSchema;
 import io.milvus.grpc.KeyValuePair;
 import io.milvus.grpc.KeyValuePair;
-import io.milvus.v2.service.collection.request.CreateCollectionWithSchemaReq;
+import io.milvus.v2.service.collection.request.CreateCollectionReq;
 
 
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 
 
 public class SchemaUtils {
 public class SchemaUtils {
-    public static FieldSchema convertToGrpcFieldSchema(CreateCollectionWithSchemaReq.FieldSchema fieldSchema) {
+    public static FieldSchema convertToGrpcFieldSchema(CreateCollectionReq.FieldSchema fieldSchema) {
         FieldSchema schema = FieldSchema.newBuilder()
         FieldSchema schema = FieldSchema.newBuilder()
                 .setName(fieldSchema.getName())
                 .setName(fieldSchema.getName())
                 .setDataType(DataType.valueOf(fieldSchema.getDataType().name()))
                 .setDataType(DataType.valueOf(fieldSchema.getDataType().name()))
@@ -26,12 +26,12 @@ public class SchemaUtils {
         return schema;
         return schema;
     }
     }
 
 
-    public static CreateCollectionWithSchemaReq.CollectionSchema convertFromGrpcCollectionSchema(CollectionSchema schema) {
-        CreateCollectionWithSchemaReq.CollectionSchema collectionSchema = CreateCollectionWithSchemaReq.CollectionSchema.builder()
+    public static CreateCollectionReq.CollectionSchema convertFromGrpcCollectionSchema(CollectionSchema schema) {
+        CreateCollectionReq.CollectionSchema collectionSchema = CreateCollectionReq.CollectionSchema.builder()
                 .description(schema.getDescription())
                 .description(schema.getDescription())
                 .enableDynamicField(schema.getEnableDynamicField())
                 .enableDynamicField(schema.getEnableDynamicField())
                 .build();
                 .build();
-        List<CreateCollectionWithSchemaReq.FieldSchema> fieldSchemas = new ArrayList<>();
+        List<CreateCollectionReq.FieldSchema> fieldSchemas = new ArrayList<>();
         for (FieldSchema fieldSchema : schema.getFieldsList()) {
         for (FieldSchema fieldSchema : schema.getFieldsList()) {
             fieldSchemas.add(convertFromGrpcFieldSchema(fieldSchema));
             fieldSchemas.add(convertFromGrpcFieldSchema(fieldSchema));
         }
         }
@@ -39,8 +39,8 @@ public class SchemaUtils {
         return collectionSchema;
         return collectionSchema;
     }
     }
 
 
-    private static CreateCollectionWithSchemaReq.FieldSchema convertFromGrpcFieldSchema(FieldSchema fieldSchema) {
-        CreateCollectionWithSchemaReq.FieldSchema schema = CreateCollectionWithSchemaReq.FieldSchema.builder()
+    private static CreateCollectionReq.FieldSchema convertFromGrpcFieldSchema(FieldSchema fieldSchema) {
+        CreateCollectionReq.FieldSchema schema = CreateCollectionReq.FieldSchema.builder()
                 .name(fieldSchema.getName())
                 .name(fieldSchema.getName())
                 .dataType(io.milvus.v2.common.DataType.valueOf(fieldSchema.getDataType().name()))
                 .dataType(io.milvus.v2.common.DataType.valueOf(fieldSchema.getDataType().name()))
                 .isPrimaryKey(fieldSchema.getIsPrimaryKey())
                 .isPrimaryKey(fieldSchema.getIsPrimaryKey())

+ 3 - 3
src/test/java/io/milvus/v2/service/collection/CollectionTest.java

@@ -53,7 +53,7 @@ class CollectionTest extends BaseTest {
 //        fields.add(vectorSchema);
 //        fields.add(vectorSchema);
 //        fields.add(metaSchema);
 //        fields.add(metaSchema);
 
 
-        CreateCollectionWithSchemaReq.CollectionSchema collectionSchema = CreateCollectionWithSchemaReq.CollectionSchema.builder()
+        CreateCollectionReq.CollectionSchema collectionSchema = CreateCollectionReq.CollectionSchema.builder()
                 .enableDynamicField(Boolean.TRUE)
                 .enableDynamicField(Boolean.TRUE)
                 .build();
                 .build();
         collectionSchema.addPrimaryField("id", DataType.Int64, null, Boolean.TRUE, Boolean.FALSE);
         collectionSchema.addPrimaryField("id", DataType.Int64, null, Boolean.TRUE, Boolean.FALSE);
@@ -66,12 +66,12 @@ class CollectionTest extends BaseTest {
                 .metricType(IndexParam.MetricType.L2)
                 .metricType(IndexParam.MetricType.L2)
                 .build();
                 .build();
 
 
-        CreateCollectionWithSchemaReq request = CreateCollectionWithSchemaReq.builder()
+        CreateCollectionReq request = CreateCollectionReq.builder()
                 .collectionName("test")
                 .collectionName("test")
                 .collectionSchema(collectionSchema)
                 .collectionSchema(collectionSchema)
                 .indexParams(Collections.singletonList(indexParam))
                 .indexParams(Collections.singletonList(indexParam))
                 .build();
                 .build();
-        client_v2.createCollectionWithSchema(request);
+        client_v2.createCollection(request);
     }
     }
 
 
     @Test
     @Test