milvus笔记、常用表结构

文章目录

通用表结构

通用表结构-简单描述

这个是给大模型的话术,它直接就能生成出来:

bash 复制代码
v_common # 表名
id # id int64
vector # 向量 float32 1536维
content # 内容 varchar(1024)
category # 分类 varchar(256)
通用表结构-代码创建表结构
python 复制代码
from custom_milvus_client import client


from pymilvus import MilvusClient, DataType

# 假设 client 已经通过 custom_milvus_client 初始化并连接
# from custom_milvus_client import client

collection_name = "v_common"

# 1. 定义 Schema
# auto_id=True: 表示 id 由 Milvus 自动生成,插入数据时无需传 id
# enable_dynamic_field=False: 强制严格模式,只能插入定义的字段
schema = client.create_schema(auto_id=True, enable_dynamic_field=False)

# 2. 添加字段
# --- 主键 ---
schema.add_field(field_name="id", datatype=DataType.INT64, is_primary=True)

# --- 向量字段 (1536维) ---
schema.add_field(field_name="vector", datatype=DataType.FLOAT_VECTOR, dim=1536)

# --- 内容字段 (Varchar 1024) ---
schema.add_field(field_name="content", datatype=DataType.VARCHAR, max_length=1024)

# --- 分类字段 (Varchar 256) ---
schema.add_field(field_name="category", datatype=DataType.VARCHAR, max_length=256)

# 3. 定义索引参数
# 使用 HNSW 索引(高性能) + COSINE 距离(适合文本向量)
index_params = client.prepare_index_params()
index_params.add_index(
    field_name="vector",
    index_type="HNSW",
    metric_type="COSINE",
    params={"M": 16, "efConstruction": 256}
)

# 4. 创建集合
# 如果集合已存在,先删除(开发环境常用,生产环境请慎用)
if client.has_collection(collection_name):
    client.drop_collection(collection_name)
    print(f"⚠️ 集合 '{collection_name}' 已存在,已删除并重建。")

client.create_collection(
    collection_name=collection_name,
    schema=schema,
    index_params=index_params,
    consistency_level="Strong"  # 强一致性,确保写入后立即能被搜到
)

print(f"✅ 集合 '{collection_name}' 创建成功!")
相关推荐
devilnumber16 小时前
Java 递归算法 详解 + 核心要点 + 实战运用 + 避坑指南
java·开发语言·算法
‎ദ്ദിᵔ.˛.ᵔ₎18 小时前
双指针、滑动窗口、前缀和、二分查找 算法
算法
顾北顾19 小时前
多头注意力机制
人工智能·深度学习·算法
H1785350909619 小时前
SolidWorks_基于草图的实体特征20_特征错误排查
算法·3d建模·solidworks
hujinyuan2016019 小时前
2025年12月中国电子学会青少年机器人技术等级考试试卷(二级) 真题+答案
人工智能·算法·机器人
闪闪发亮的小星星19 小时前
开普勒三大定律
笔记
bIo7lyA8v20 小时前
算法复杂度评估的实验统计方法与可视化的技术8
算法
李老师讲编程20 小时前
中国电子学会图形化2020.12月Scratch三级考级题
算法·scratch·信息学奥赛·图形化编程·scratch素材
自传.20 小时前
尚硅谷 Vibe Coding|第一章 AI 编程基础理论 学习笔记
笔记·学习·尚硅谷·vibe coding
退休倒计时20 小时前
【每日一题】LeetCode 53. 最大子数组和 TypeScript
数据结构·算法·leetcode·typescript