|
@@ -20,12 +20,12 @@
|
|
|
package io.milvus.v2.service.collection.request;
|
|
|
|
|
|
import io.milvus.common.clientenum.FunctionType;
|
|
|
-import io.milvus.param.ParamUtils;
|
|
|
import io.milvus.v2.common.ConsistencyLevel;
|
|
|
import io.milvus.v2.common.DataType;
|
|
|
import io.milvus.v2.common.IndexParam;
|
|
|
import io.milvus.v2.exception.ErrorCode;
|
|
|
import io.milvus.v2.exception.MilvusClientException;
|
|
|
+import io.milvus.v2.utils.SchemaUtils;
|
|
|
import lombok.Builder;
|
|
|
import lombok.Data;
|
|
|
import lombok.NonNull;
|
|
@@ -136,44 +136,7 @@ public class CreateCollectionReq {
|
|
|
private List<CreateCollectionReq.Function> functionList = new ArrayList<>();
|
|
|
|
|
|
public CollectionSchema addField(AddFieldReq addFieldReq) {
|
|
|
- // check the input here to pop error messages earlier
|
|
|
- if (addFieldReq.isEnableDefaultValue() && addFieldReq.getDefaultValue() == null
|
|
|
- && addFieldReq.getIsNullable() == Boolean.FALSE) {
|
|
|
- String msg = String.format("Default value cannot be null for field '%s' that is defined as nullable == false.", addFieldReq.getFieldName());
|
|
|
- throw new MilvusClientException(ErrorCode.INVALID_PARAMS, msg);
|
|
|
- }
|
|
|
-
|
|
|
- CreateCollectionReq.FieldSchema fieldSchema = FieldSchema.builder()
|
|
|
- .name(addFieldReq.getFieldName())
|
|
|
- .dataType(addFieldReq.getDataType())
|
|
|
- .description(addFieldReq.getDescription())
|
|
|
- .isPrimaryKey(addFieldReq.getIsPrimaryKey())
|
|
|
- .isPartitionKey(addFieldReq.getIsPartitionKey())
|
|
|
- .isClusteringKey(addFieldReq.getIsClusteringKey())
|
|
|
- .autoID(addFieldReq.getAutoID())
|
|
|
- .isNullable(addFieldReq.getIsNullable())
|
|
|
- .defaultValue(addFieldReq.getDefaultValue())
|
|
|
- .enableAnalyzer(addFieldReq.getEnableAnalyzer())
|
|
|
- .enableMatch(addFieldReq.getEnableMatch())
|
|
|
- .analyzerParams(addFieldReq.getAnalyzerParams())
|
|
|
- .typeParams(addFieldReq.getTypeParams())
|
|
|
- .multiAnalyzerParams(addFieldReq.getMultiAnalyzerParams())
|
|
|
- .build();
|
|
|
- if (addFieldReq.getDataType().equals(DataType.Array)) {
|
|
|
- if (addFieldReq.getElementType() == null) {
|
|
|
- throw new MilvusClientException(ErrorCode.INVALID_PARAMS, "Element type, maxCapacity are required for array field");
|
|
|
- }
|
|
|
- fieldSchema.setElementType(addFieldReq.getElementType());
|
|
|
- fieldSchema.setMaxCapacity(addFieldReq.getMaxCapacity());
|
|
|
- } else if (addFieldReq.getDataType().equals(DataType.VarChar)) {
|
|
|
- fieldSchema.setMaxLength(addFieldReq.getMaxLength());
|
|
|
- } else if (ParamUtils.isDenseVectorDataType(io.milvus.grpc.DataType.valueOf(addFieldReq.getDataType().name()))) {
|
|
|
- if (addFieldReq.getDimension() == null) {
|
|
|
- throw new MilvusClientException(ErrorCode.INVALID_PARAMS, "Dimension is required for vector field");
|
|
|
- }
|
|
|
- fieldSchema.setDimension(addFieldReq.getDimension());
|
|
|
- }
|
|
|
- fieldSchemaList.add(fieldSchema);
|
|
|
+ fieldSchemaList.add(SchemaUtils.convertFieldReqToFieldSchema(addFieldReq));
|
|
|
return this;
|
|
|
}
|
|
|
|