当前位置: 首页 > article >正文

在Milvus中管理Schema

在Milvus中,Schema定义了向量数据库中数据的组织结构,包括字段名称和类型等。通过定义Schema来管理和查询数据,以支持高效的搜索和分析操作。本文为您介绍Collection和字段的Schema定义以及如何在Milvus中创建Schema。

前提条件

  • 已在本地客户端成功安装了PyMilvus库,并将其更新至当前最新版本。

    如果您尚未在本地客户端安装PyMilvus库,或者需要将其更新至当前最新版本,您可以执行以下命令。

    pip install --upgrade pymilvus
  • 已创建Milvus实例,请参见详情快速创建Milvus实例。

Schema介绍

在创建集合之前,通常需要预先定义字段的Schema,以便在构建集合时能够整合并应用这些字段的Schema以及集合的Schema设置。

字段Schema

在Milvus中定义字段Schema时,系统当前只允许指定一种类型的字段作为主键(Primary Key)。

属性

描述

name

字段的名称。

dtype

字段的数据类型。

description

字段的描述信息。

is_primary

是否将该字段设为主键。取值为True或False。

auto_id(主键字段)

是否为主键字段启用自动递增ID。取值为True或False。

max_length(Varchar属性)

设置Varchar类型字段的最大长度。取值范围为[1, 65535]。

dim

向量字段的维度,是一个整数(Integer)类型的值,取值范围为[1, 32768]。

is_partition_key

是否将该字段作为分区键使用。取值为True或False。

Collection Schema

Collection Schema是Milvus中对集合结构和特性的详细定义。

属性

描述

field

集合中定义的字段。

description

集合的描述信息。可选参数。

partition_key_field

分区字段的名称。可选参数。

enable_dynamic_field

是否开启动态Schema属性。默认值为False。

创建Collection Schema

以下代码示例为您展示了如何使用 FieldSchema 来定义各个字段的属性,然后基于这些属性构建 CollectionSchema,并最终创建 Collection 对象的过程。集合创建好后,便可执行数据插入、查询等后续操作。

from pymilvus import FieldSchema, CollectionSchema, connections, DataType, Collection

conn = connections.connect(host="c-xxx.milvus.aliyuncs.com", port=19530, user="<yourUsername>", password="<yourPassword>")

# 定义集合字段(FieldSchema)。

# 主键字段:id,类型为INT64,用于唯一标识每条记录。
id_field = FieldSchema(name="id", dtype=DataType.INT64, is_primary=True, description="primary id")

# 年龄字段:age,类型为INT64,用于存储年龄信息。
age_field = FieldSchema(name="age", dtype=DataType.INT64, description="age")

# 向量字段:embedding,类型为FLOAT_VECTOR,维度为128,用于存储向量数据。
embedding_field = FieldSchema(name="embedding", dtype=DataType.FLOAT_VECTOR, dim=128, description="vector")

# 分区键字段:position,类型为VARCHAR,最大长度为256,用于进行数据分区。
position_field = FieldSchema(name="position", dtype=DataType.VARCHAR, max_length=256, is_partition_key=True)

# 使用定义好的字段构建CollectionSchema。
schema = CollectionSchema(fields=[id_field, age_field, embedding_field], auto_id=False, enable_dynamic_field=True, description="desc of a collection")

# 定义要创建的集合名称。
collection_name = "demo_1"
# 使用定义好的Schema创建Collection对象。
collection = Collection(
    name=collection_name,
    schema=schema,
    using='default',  # 指定使用的连接名,默认为 'default'。
    shards_num=2  # 设置集合的分片数量,可根据实际需求调整。
)

http://www.kler.cn/news/364058.html

相关文章:

  • ActivationType, Pool, ModelType(helpers文件中的classes.py)
  • 在合规的地方怎么用EACO地球链兑换交换价值?
  • (3) c++基本代码
  • 【QT】QChart绘制曲线与散点图
  • MySQL启动报错:InnoDB: Unable to lock ./ibdata1 error
  • 解决:IntelliJ IDEA 项目中代码文件不能运行的问题(即:J 标文件的问题)
  • 产品如何实现3D展示?具体步骤如下
  • Prompt-Tuning方法学习
  • 龙蟠科技业绩压力显著:资产负债率持续攀升,产能利用率也不乐观
  • YOLO11改进|卷积篇|引入大感受野小波卷积WTConv
  • 等保测评:网络安全等级保护测评的主要目的与核心价值
  • 软件设计师:软件工程
  • 【升华】一文从0到1到实际性应用大语言模型(LLM)
  • leetcode动态规划(十九)-完全平方数
  • 前端实现监控埋点
  • Linux——进程基础
  • 智联招聘×Milvus:向量召回技术提升招聘匹配效率
  • 华为配置 之 远程管理配置
  • 在pycharm中使用sqllite
  • 通过使用Visual Studio将你的程序一键发布到Docker
  • JavaWeb合集15-线程局部变量ThreadLocal
  • sentinel原理源码分析系列(八)-熔断
  • 十六、行为型(责任链模式)
  • 2024年9月中国电子学会青少年软件编程(Python)等级考试试卷(三级)答案 + 解析
  • PHP企业门店订货通进销存系统小程序源码
  • 定位中的信号干扰与噪声处理