milvus-sdk-java icon indicating copy to clipboard operation
milvus-sdk-java copied to clipboard

version 2.3.x and 2.4.x do not support .withElementType(DataType.Int32) in the code below. Without this the collection can not be created.

Open sagpid opened this issue 1 year ago • 1 comments

FieldType tagIdsField = FieldType.newBuilder() .withAutoID(false) .withDataType(DataType.Array) .withDescription("tagIds") .withDimension(0) .withIsDynamic(false) .withMaxLength(0) .withName("tagIds") .withPartitionKey(false) .withPrimaryKey(false) .withTypeParams( typeParams) .withElementType(DataType.Int32) .build();

sagpid avatar Jul 19 '24 20:07 sagpid

withDimension() is for vector field, no need to specify for array field. withIsDynamic() is for dynamic field, no need to specify for array field. withMaxLength() is for varchar field, no need to specify for array field. withPartitionKey() is for partition key field, only varchar/boolean/numeric fields can be partition key, no need to specify for array field. withTypeParams() is a low-level method used by withMaxLength/withMaxCapacity/withDimension, normally no need to call this method.

To declare an array field, withName/withDataType/withMaxCapacity/withElementType must be specified:

FieldType tagIdsField = FieldType.newBuilder()
                .withDataType(DataType.Array)
                .withDescription("tagIds")
                .withName("tagIds")
                .withMaxCapacity(10)
                .withElementType(DataType.Int32)
                .build();

yhmo avatar Jul 29 '24 03:07 yhmo