跳到主要内容
版本:v2.5.x

主字段和自动识别

主字段唯一标识一个实体。本页介绍如何添加两种不同数据类型的主字段,以及如何启用 Milvus 自动分配主字段值。

概述

在 Collection 中,每个实体的主键都应该是全局唯一的。添加主字段时,需要显式地将其数据类型设置为VARCHARINT64。将其数据类型设置为INT64表示主键应为整数,类似于12345 ;将其数据类型设置为VARCHAR表示主键应为字符串,类似于my_entity_1234

你也可以启用AutoID,让 Milvus 自动为进入的实体分配主键。在 Collection 中启用AutoID后,插入实体时不要包含主键。

Collection 中的主字段没有默认值,也不能为空。

使用 Int64 主键

要使用 Int64 类型的主键,需要将datatype 设置为DataType.INT64 ,将is_primary 设置为true 。如果还需要 Milvus 为进入的实体分配主键,还需要将auto_id 设置为true

from pymilvus import MilvusClient, DataType

schema = MilvusClient.create_schema()

schema.add_field(
field_name="my_id",
datatype=DataType.INT64,
is_primary=True,
auto_id=True,
)

使用 VarChar 主键

要使用 VarChar 主键,除了将data_type 参数值更改为DataType.VARCHAR 外,还需要为字段设置max_length 参数。

schema.add_field(
field_name="my_id",
datatype=DataType.VARCHAR,
is_primary=True,
auto_id=True,
max_length=512,
)