闲社服务运行正常AI智能体自动化平台
m

操作Milvus数据库

技能标识:milvus

Operate Milvus vector database with pymilvus Python SDK. Use when the user wants to connect to Milvus, create collections, insert vectors, perform similarity search, hybrid search, full-text search, manage indexes, partitions, databases, or RBAC via Python code.

作者:admin | 来源记录:ClawHub
登记来源
ClawHub
版本
V 0.0.2
检测标记
后台标记通过
免费
免费获取
0
收藏
来源与检测标记为平台登记信息,并不代表已展示可复核的检测报告。使用前请核对版本、依赖和所需权限,建议先在隔离环境中运行。
概述
安装方式
版本历史

操作Milvus数据库

Milvus 向量数据库技能

通过 pymilvus SDK 直接使用 Python 代码操作 Milvus 向量数据库。涵盖完整生命周期——连接、模式设计、集合管理、向量增删改查、搜索、混合搜索、全文搜索、索引、分区、数据库和 RBAC。

何时使用

当用户希望执行以下操作时使用此技能:

  • - 连接到 Milvus 实例(本地、单机、集群或 Milvus Lite)
  • 使用自定义模式创建集合
  • 插入、更新、搜索、查询、获取或删除向量
  • 执行带重排序的混合搜索
  • 执行全文搜索(BM25)
  • 管理索引、分区、数据库
  • 设置用户、角色和访问控制(RBAC)
  • 使用 Milvus 构建 RAG 流水线、语义搜索或推荐系统
  • 使用搜索/查询迭代器遍历大型结果集

要求

  • - Python 3.8+
  • pymilvus(pip install pymilvus)
  • 一个运行中的 Milvus 实例,或使用 Milvus Lite(嵌入式、基于文件)进行开发

功能概览

领域可执行操作
连接连接到 Milvus Lite、单机版、集群版或 Zilliz Cloud
集合
创建(快速或自定义模式)、列出、描述、删除、重命名、清空、加载、释放 | | 向量 | 插入、更新、搜索、混合搜索、查询、获取、删除 | | 全文搜索 | 基于 BM25 的关键词搜索(使用稀疏向量) | | 迭代器 | 对大型数据集进行分页搜索和查询 | | 索引 | 创建(AUTOINDEX、HNSW、IVF_FLAT 等)、列出、描述、删除 | | 分区 | 创建、列出、加载、释放、删除 | | 数据库 | 创建、列出、切换、删除 | | RBAC | 用户、角色、权限管理 |

连接

重要:在编写任何连接代码之前,您必须询问用户的连接详情。 询问:

  1. 1. 部署类型 —— Milvus Lite(本地文件)、单机版/集群版(自托管)或 Zilliz Cloud(托管服务)?
  2. URI —— 自托管:主机和端口(例如 http://localhost:19530)。Zilliz Cloud:端点 URL。
  3. 认证 —— 令牌、API 密钥或用户名/密码(如果需要)。
  4. 数据库名称 —— 如果不使用默认数据库。

切勿假设或硬编码连接参数。 仅在用户明确要求本地/嵌入式模式进行开发时使用 Milvus Lite(uri=./milvus.db)。

python
from pymilvus import MilvusClient

Milvus Lite(嵌入式、基于文件——非常适合开发/测试)

client = MilvusClient(uri=./milvus.db)

单机版 / 集群版 Milvus(询问用户实际的主机:端口和凭据)

client = MilvusClient(uri=<用户URI>, token=<用户令牌>)

Zilliz Cloud(询问用户的端点和 API 密钥)

client = MilvusClient(uri=<用户ZILLIZ端点>, token=<用户API密钥>)

参数:

参数类型描述
uristrMilvus Lite 使用 ./file.db,服务器使用 http://host:19530
token
str | API 密钥或 username:password |
| user | str | 用户名(令牌的替代方案) |
| password | str | 密码(令牌的替代方案) |
| db_name | str | 目标数据库(默认:default) |
| timeout | float | 操作超时时间(秒) |

异步客户端

python
from pymilvus import AsyncMilvusClient

async with AsyncMilvusClient(uri=<用户_URI>) as client:
results = await client.search(collectionname=mycollection, data=[query_vector], limit=10)



集合管理

快速创建(自动模式 + 自动索引 + 自动加载)

python
client.create_collection(
collectionname=mycollection,
dimension=768,
metric_type=COSINE # 可选:COSINE(默认)、L2、IP
)

这将自动创建 id 字段(INT64,主键,自动 ID)、vector 字段(FLOAT_VECTOR)、AUTOINDEX,并自动加载集合。

自定义模式创建

python
from pymilvus import DataType

schema = client.createschema(autoid=False, enabledynamicfield=True)
schema.addfield(id, DataType.INT64, isprimary=True)
schema.addfield(text, DataType.VARCHAR, maxlength=512)
schema.addfield(embedding, DataType.FLOATVECTOR, dim=768)

indexparams = client.prepareindex_params()
indexparams.addindex(fieldname=embedding, indextype=AUTOINDEX, metric_type=COSINE)

client.createcollection(collectionname=mycollection, schema=schema, indexparams=index_params)

有关数据类型、addfield 参数和所有集合操作,请参阅 references/collection.md。

其他集合操作

python
client.list_collections()
client.describecollection(collectionname=my_collection)
client.hascollection(collectionname=my_collection)
client.renamecollection(oldname=old, new_name=new)
client.dropcollection(collectionname=my_collection)
client.truncatecollection(collectionname=my_collection)
client.loadcollection(collectionname=my_collection)
client.releasecollection(collectionname=my_collection)
client.getloadstate(collectionname=mycollection)
client.getcollectionstats(collectionname=mycollection)

  • - 快速创建最适合原型开发;生产环境请使用自定义模式。
  • 集合必须在搜索或查询之前加载。
  • 使用 enabledynamicfield=True 允许插入模式中未定义的字段。

向量操作

有关混合搜索、全文搜索、迭代器、过滤语法和详细示例,请参阅 references/vector.md。

插入 / 更新

python

向量必须来自嵌入模型——切勿使用虚假/占位向量


from pymilvus import model

embeddingfn = model.dense.SentenceTransformerEmbeddingFunction(modelname=all-MiniLM-L6-v2)

docs = [2024年AI进展, 面向初学者的ML基础]
vectors = embeddingfn.encodedocuments(docs)

data = [
{id: 1, text: docs[0], embedding: vectors[0]},
{id: 2, text: docs[1], embedding: vectors[1]},
]
client.insert(collectionname=mycollection, data=data)
client.upsert(collectionname=mycollection, data=data)

搜索(向量相似度)

python

使用相同的嵌入模型对查询进行编码


queryvectors = embeddingfn.encode_queries([什么是人工智能?])

results = client.search(
collectionname=mycollection,
data=query_vectors,
anns_field=embedding,
limit=10,
output_fields=[text, id],
filter=age > 20 and status == active,
searchparams={metrictype: COSINE, params: {nprobe: 10}}
)

查询 / 获取 / 删除

python

按过滤条件查询


client.query(collectionname=mycollection, filter=id in [1, 2, 3], output_fields=[text], limit=100)

按主键获取

client.get(collectionname=mycollection, ids=[1, 2, 3], output_fields=[text])

删除

client.delete(collectionname=mycollection, ids=[1, 2, 3]) client.delete(collectionname=mycollection, filter=status == obsolete)
  • - 切勿使用虚假或占位向量(例如 [0.1, 0.2, ...])。始终从嵌入模型生成向量。
  • 使用 pip install pymilvus[model] 获取内置嵌入函数,或使用任何嵌入模型(OpenAI、Cohere 等)。
  • 搜索中的向量维度必须与集合模式完全匹配。
  • 查询嵌入模型必须与生成存储向量的模型相同。
  • 对于大量插入,将数据分批处理

标签

skill ai

通过对话安装

以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 milvus-skill-1776057069 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 milvus-skill-1776057069 技能

通过命令行安装

skillhub install milvus-skill-1776057069

下载

⬇ 下载 milvus v0.0.2(免费)

文件大小: 13.62 KB | 发布时间: 2026-4-14 11:05

v0.0.2 最新 2026-4-14 11:05
- No changes detected in this version; documentation and functionality remain the same.
- All usage instructions, requirements, and capabilities are consistent with the previous release.
返回顶部