Class FieldType.Builder

java.lang.Object
io.milvus.param.collection.FieldType.Builder
Enclosing class:
FieldType

public static final class FieldType.Builder extends Object
Builder for FieldType class.
  • Method Details

    • withName

      public FieldType.Builder withName(@NonNull @NonNull 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 support Long data type as primary key.
      Parameters:
      primaryKey - true is primary key, false is not
      Returns:
      Builder
    • withDescription

      public FieldType.Builder withDescription(@NonNull @NonNull 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(@NonNull @NonNull DataType dataType)
      Sets the data type for the field.
      Parameters:
      dataType - data type of the field
      Returns:
      Builder
    • withElementType

      public FieldType.Builder withElementType(@NonNull @NonNull 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(@NonNull @NonNull String key, @NonNull @NonNull String value)
      Adds a parameter pair for the field.
      Parameters:
      key - parameter key
      value - parameter value
      Returns:
      Builder
    • withTypeParams

      public FieldType.Builder withTypeParams(@NonNull @NonNull Map<String,String> typeParams)
      Sets more parameters for the field.
      Parameters:
      typeParams - parameters of the field
      Returns:
      Builder
    • withDimension

      public FieldType.Builder withDimension(@NonNull @NonNull 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(@NonNull @NonNull 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(@NonNull @NonNull 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 fields For 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 new FieldType instance.
      Returns:
      FieldType
      Throws:
      ParamException