跳到主要内容

CollectionSchema

Near Deprecation

CollectionSchema 实例表示 Collection 的 Schema。Schema 概述了 Collection 的结构。

python
class pymilvus.CollectionSchema

构造函数​

通过定义字段、数据类型和其他参数来构造 Collection 的 Schema。

python
CollectionSchema(
fields: list,
description: str
)

参数:

  • fields (list) -

    [必需]

    用于定义 Collection Schema 中字段的 FieldSchema 对象列表。

    Note

    什么是字段 Schema?

    字段 Schema 表示并包含单个字段的元数据,而 CollectionSchema 会将一组 FieldSchema 对象组合在一起,以定义完整的 Schema。

  • description (string) -

    Schema 的描述。

    如果未提供描述,则会将其设置为空字符串。

  • kwargs -

    • auto_id (bool)

      是否允许主字段自动递增。

      将其设置为 True 会使主字段自动递增。在这种情况下,为避免出错,插入的数据中不应包含主字段。

    • enable_dynamic_field (bool)

      如果插入到目标 Collection 的数据包含 Collection Schema 中未定义的字段,是否允许 Zilliz Cloud 将这些未定义字段的值保存在动态字段中。

      当您将其设置为 True 时,Zilliz Cloud 会创建一个名为 $meta 的字段,用于存储插入数据中任何未定义的字段及其值。

      Note

      什么是动态字段?

      如果插入到目标 Collection 的数据包含 Collection Schema 中未定义的字段,这些字段将作为键值对保存在动态字段中。

    • primary_field (str)

      主字段的名称。

      该值应为 fields 中列出的字段名称。

      或者,您也可以在创建 FieldSchema 对象时设置 is_primary。

    • partition_key_field (str)

      用作 Partition 键的字段名称。

      该值应为 fields 中列出的字段名称。

      设置此项后,Zilliz Cloud 将管理当前 Collection 中的所有 Partition。

      或者,您也可以在创建 FieldSchema 对象时设置 is_partition_key。

      Note

      什么是 Partition 键?

      一旦某个字段被指定为 Partition 键,Zilliz Cloud 就会自动为该字段中的每个唯一值创建一个 Partition,并相应地将 Entity 保存到这些 Partition 中。

      这在基于特定键实现数据分离时特别有用,例如面向 Partition 的多租户。

      或者,您也可以在创建 CollectionSchema 对象时设置 partition_key_field。

返回类型:

CollectionSchema

返回:

一个 CollectionSchema 对象。

异常:

  • FieldsTypeException:

    当 fields 参数不是列表时,将引发此异常。

  • FieldTypeException:

    当 fields 列表中的某个字段不是 FieldSchema 对象时,将引发此异常。

  • PrimaryKeyException:

    在以下情况下将引发此异常:

    • 已设置 primary_field 参数,但其值不是字符串。

    • 已设置 primary_field 参数,但其值不是任何已列出字段的名称。

  • PartitionKeyException:

    在以下情况下将引发此异常:

    • 已设置 partition_key_field 参数,但其值不是字符串。

    • 已设置 partition_key_field 参数,但其值不是任何已列出字段的名称。

  • AutoIDException:

    • 如果已设置 auto_id 参数,但其值不是布尔值,则将引发此异常。

示例​

python
from pymilvus import CollectionSchema, FieldSchema, DataType

# Define fields in a schema
primary_key = FieldSchema(
name="id",
dtype=DataType.INT64,
is_primary=True,
)

vector = FieldSchema(
name="vector",
dtype=DataType.FLOAT_VECTOR,
dim=768
)

# Construct a schema with the predefined fields
schema = CollectionSchema(
fields=[primary_key, vector],
description="example_schema"
)

方法​

以下是 CollectionSchema 类的方法:

最低 SDK 版本Inherit