1. 连接Milvus并创建第一个集合
任务说明
本案例目标:使用 Milvus Python SDK 连接本地 Milvus 服务,创建第一个集合,并完成基础参数配置。完成后,你将拥有一个可写入数据的空集合,为后续向量检索案例提供基础。
环境准备
确保已安装 Milvus 服务(本案例使用 Milvus 2.x 版本)及 Python SDK:
pip install pymilvus==2.4.9
实现代码
from pymilvus import (
connections,
utility,
FieldSchema,
CollectionSchema,
DataType,
Collection,
)
# 1. 连接 Milvus 服务
connections.connect(alias="default", host="localhost", port="19530")
print("连接成功")
# 2. 定义集合名称
collection_name = "demo_collection"
# 3. 若集合已存在,先删除以便重复运行
if utility.has_collection(collection_name):
utility.drop_collection(collection_name)
# 4. 定义字段
fields = [
FieldSchema(name="id", dtype=DataType.INT64, is_primary=True, auto_id=False),
FieldSchema(name="embedding", dtype=DataType.FLOAT_VECTOR, dim=8),
]
# 5. 创建集合模式
schema = CollectionSchema(fields=fields, description="第一个测试集合")
# 6. 创建集合(不创建索引)
collection = Collection(name=collection_name, schema=schema)
print(f"集合 {collection_name} 创建成功")
# 7. 验证集合信息
print(f"集合名称: {collection.name}")
print(f"字段列表: {[field.name for field in collection.schema.fields]}")
print(f"向量维度: {collection.schema.fields[1].params['dim']}")
print(f"集合行数: {collection.num_entities}")
关键说明
- 连接参数:
host和port需与本地 Milvus 服务实际地址一致,默认端口为 19530。 - 字段设计:主键
id为 INT64 类型,向量字段embedding为 8 维浮点向量(维度可根据实际需求调整)。 - 集合删除:代码开头检查并删除同名集合,确保脚本可重复执行而不报错。
- 索引说明:本案例仅创建集合,未创建索引。索引创建将在后续案例中单独演示。
运行与验证
- 启动 Milvus 服务(默认本地 standalone 模式)。
- 运行上述 Python 脚本。
- 观察输出:若显示“连接成功”“集合 demo_collection 创建成功”,且集合行数为 0,则说明集合创建成功。
判定标准:脚本无异常退出,输出信息与代码逻辑一致,且通过 utility.has_collection("demo_collection") 可查询到该集合存在。
预期输出
连接成功
集合 demo_collection 创建成功
集合名称: demo_collection
字段列表: ['id', 'embedding']
向量维度: 8
集合行数: 0