Class FieldType.Builder
- java.lang.Object
-
- io.milvus.param.collection.FieldType.Builder
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description FieldType.BuilderaddTypeParam(String key, String value)Adds a parameter pair for the field.FieldTypebuild()Verifies parameters and creates a newFieldTypeinstance.FieldType.BuilderwithAutoID(boolean autoID)Enables auto-id function for the field.FieldType.BuilderwithClusteringKey(boolean clusteringKey)Set the field to be a clustering key.FieldType.BuilderwithDataType(DataType dataType)Sets the data type for the field.FieldType.BuilderwithDefaultValue(Object obj)Sets default value of this field.FieldType.BuilderwithDescription(String description)Sets the field description.FieldType.BuilderwithDimension(Integer dimension)Sets the dimension of a vector field.FieldType.BuilderwithElementType(DataType elementType)Sets the element type for Array type field.FieldType.BuilderwithIsDynamic(boolean isDynamic)Sets the isDynamic of a field.FieldType.BuilderwithMaxCapacity(Integer maxCapacity)Sets the max capacity of an array field.FieldType.BuilderwithMaxLength(Integer maxLength)Sets the max length of a varchar field.FieldType.BuilderwithName(String name)FieldType.BuilderwithNullable(boolean nullable)Sets this field is nullable or not.FieldType.BuilderwithPartitionKey(boolean partitionKey)Sets the field to be partition key.FieldType.BuilderwithPrimaryKey(boolean primaryKey)Sets the field as the primary key field.FieldType.BuilderwithTypeParams(Map<String,String> typeParams)Sets more parameters for the field.
-
-
-
Method Detail
-
withName
public FieldType.Builder withName(String name)
-
withIsDynamic
public FieldType.Builder withIsDynamic(boolean isDynamic)
Sets the isDynamic of a field.- Parameters:
isDynamic- of a field- Returns:
Builder
-
withPrimaryKey
public FieldType.Builder withPrimaryKey(boolean primaryKey)
Sets the field as the primary key field. Note that the current release of Milvus only supportLongdata type as primary key.- Parameters:
primaryKey- true is primary key, false is not- Returns:
Builder
-
withDescription
public FieldType.Builder withDescription(String description)
Sets the field description. The description can be empty. The default is "".- Parameters:
description- description of the field- Returns:
Builder
-
withDataType
public FieldType.Builder withDataType(DataType dataType)
Sets the data type for the field.- Parameters:
dataType- data type of the field- Returns:
Builder
-
withElementType
public FieldType.Builder withElementType(DataType elementType)
Sets the element type for Array type field.- Parameters:
elementType- element type of the Array type field- Returns:
Builder
-
addTypeParam
public FieldType.Builder addTypeParam(String key, String value)
Adds a parameter pair for the field.- Parameters:
key- parameter keyvalue- parameter value- Returns:
Builder
-
withTypeParams
public FieldType.Builder withTypeParams(Map<String,String> typeParams)
Sets more parameters for the field.- Parameters:
typeParams- parameters of the field- Returns:
Builder
-
withDimension
public FieldType.Builder withDimension(Integer dimension)
Sets the dimension of a vector field. Dimension value must be greater than zero.- Parameters:
dimension- dimension of the field- Returns:
Builder
-
withMaxLength
public FieldType.Builder withMaxLength(Integer maxLength)
Sets the max length of a varchar field. The value must be greater than zero.- Parameters:
maxLength- max length of a varchar field- Returns:
Builder
-
withMaxCapacity
public FieldType.Builder withMaxCapacity(Integer maxCapacity)
Sets the max capacity of an array field. The value must be greater than zero. The valid capacity value range is [1, 4096]- Parameters:
maxCapacity- max capacity of an array field- Returns:
Builder
-
withAutoID
public FieldType.Builder withAutoID(boolean autoID)
Enables auto-id function for the field. Note that the auto-id function can only be enabled on primary key field. If auto-id function is enabled, Milvus will automatically generate unique ID for each entity, thus you do not need to provide values for the primary key field when inserting.If auto-id is disabled, you need to provide values for the primary key field when inserting.
- Parameters:
autoID- true enable auto-id, false disable auto-id- Returns:
Builder
-
withPartitionKey
public FieldType.Builder withPartitionKey(boolean partitionKey)
Sets the field to be partition key. A partition key field's values are hashed and distributed to different logic partitions. Only int64 and varchar type field can be partition key. Primary key field cannot be partition key.- Parameters:
partitionKey- true is partition key, false is not- Returns:
Builder
-
withNullable
public FieldType.Builder withNullable(boolean nullable)
Sets this field is nullable or not. Primary key field, vector fields, Array fields cannot be nullable.1. if the field is nullable, user can input JsonNull/JsonObject(for row-based insert), or input null/object(for column-based insert) 1) if user input JsonNull, this value is replaced by default value 2) if user input JsonObject, infer this value by type 2. if the field is not nullable, user can input JsonNull/JsonObject(for row-based insert), or input null/object(for column-based insert) 1) if user input JsonNull, and default value is null, throw error 2) if user input JsonNull, and default value is not null, this value is replaced by default value 3) if user input JsonObject, infer this value by type
- Parameters:
nullable- true is nullable, false is not- Returns:
Builder
-
withDefaultValue
public FieldType.Builder withDefaultValue(Object obj)
Sets default value of this field. If nullable is false, the default value cannot be null. If nullable is true, the default value can be null. Only scalar fields(not include Array field) support default value. The default value type must obey the following rule: - Boolean for Bool fields - Short for Int8/Int16 fields - Short/Integer for Int32 fields - Short/Integer/Long for Int64 fields - Float for Float fields - Double for Double fields - String for Varchar fields - JsonObject for JSON fieldsFor JSON field, you can use JsonNull.INSTANCE as default value. For other scalar fields, you can use null as default value.
- Parameters:
obj- the default value- Returns:
Builder
-
withClusteringKey
public FieldType.Builder withClusteringKey(boolean clusteringKey)
Set the field to be a clustering key. A clustering key can notify milvus to trigger a clustering compaction to redistribute entities among segments in a collection based on the values in the clustering key field. And one global index called PartitionStats is generated to store the mapping relationship between segments and clustering key values. Once receiving a search/query request that carries a clustering key value, it quickly finds out a search scope from the PartitionStats which significantly improving search performance. Only scalar fields(except Array/JSON) can be clustering key. Only one clustering key is allowed in one collection.- Parameters:
clusteringKey- true is clustering key, false is not- Returns:
Builder
-
build
public FieldType build() throws ParamException
Verifies parameters and creates a newFieldTypeinstance.- Returns:
FieldType- Throws:
ParamException
-
-