Milvus创建手动配置
Milvus手动创建的配置
创建数据库连接(自定义)
from pymilvus import DataType
from basecofig.milvus import Milvus
# 创建数据库连接
milvus = Milvus().get_milvus()
# 选择使用的数据库
milvus.use_database(db_name="my_database_text")
# 创建集合
if "text_2" not in milvus.list_collections():
# 1. 创建 schema 并配置 auto_id = True,允许动态添加字段
schema = milvus.create_schema(auto_id=True, enable_dynamic_field=True)
# 2. 添加字段(其他字段可不选,dynamic field 会自动处理)
# 主键必须要写,我这边设置主键自增
schema.add_field(field_name="id", datatype=DataType.INT64, is_primary=True)
# BGE-M3 维度 (模型向量维度:见文章Emedding)
schema.add_field(field_name="vector", datatype=DataType.FLOAT_VECTOR, dim=1024)
(三种向量:见文章Schema)
# DataType.FLOAT_VECTOR:这表示你使用的是浮点型向量,也就是通常所说的密集向量
# DataType.VARCHAR:这表示你使用是字符串向量,也就是通常所说的稀疏向量
# 3. 准备索引参数
index_params = milvus.prepare_index_params()
# 4. 为主键字段添加索引(可选,Milvus 通常自动处理)
# index_params.add_index(
# field_name="id",
# index_type="STL_SORT"
# )
# 5. 为向量字段添加索引(关键)
index_params.add_index(
field_name="vector",
index_type="AUTOINDEX", # 让 Milvus 自动选择最合适的索引类型
metric_type="COSINE" # 语义相似度
)
# 创建自定义集合
milvus.create_collection(
collection_name="text_2", # 创建集合名称
schema=schema,
index_params=index_params
)
print("自定义集合创建成功")步骤
创建数据库连接与选择数据库
使用 milvus.use_database(db_name="my_database_text") 选择现有的数据库。如果数据库不存在,需要创建。
创建集合与配置 Schema
通过 milvus.create_schema() 创建集合的 schema。该 schema 支持动态字段(enable_dynamic_field=True)以及自增主键(auto_id=True)。
- 添加主键字段
id(INT64 类型) - 添加向量字段
vector(FLOAT_VECTOR 类型,维度为 1024)
索引配置
使用 milvus.prepare_index_params() 准备索引参数,并为向量字段 vector 添加了索引,选择自动索引类型 AUTOINDEX,并设置相似度度量方式为 COSINE。为向量字段添加索引能够提高语义相似度查询的效率。
创建集合
最后,通过 milvus.create_collection() 创建集合 text_2,并将 schema 和索引配置传递给 Milvus。
关键点总结
- 自动化与灵活性:通过配置
auto_id=True和enable_dynamic_field=True,Milvus 提供了灵活的 schema 配置,支持动态字段和自增主键。 - 高效索引:通过选择
AUTOINDEX和COSINE相似度度量,自动优化了向量查询的效率。 - 简化操作:Milvus 自动处理大部分索引和字段管理工作,开发者只需关注创建集合和数据的插入。
版权所有
版权归属:念宇
