返回顶部
m

milvus操作Milvus数据库

Operate Milvus vector database with pymilvus — collections, vector search, hybrid search, indexes, RBAC, partitions, and more via Python code.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
208
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

milvus

Milvus 向量数据库技能

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

使用时机

当用户想要以下操作时使用本技能:

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

要求

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

能力概览

领域可执行操作
连接连接到 Milvus Lite、单机、集群或 Zilliz Cloud
集合
创建(快速或自定义模式)、列出、描述、删除、重命名、加载、释放 | | 向量 | 插入、更新插入、搜索、混合搜索、查询、获取、删除 | | 索引 | 创建(AUTOINDEX、HNSW、IVF_FLAT 等)、列出、描述、删除 | | 分区 | 创建、列出、加载、释放、删除 | | 数据库 | 创建、列出、切换、删除 | | RBAC | 用户、角色、权限管理 |

连接

python
from pymilvus import MilvusClient

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

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

单机 / 集群 Milvus

client = MilvusClient(uri=http://localhost:19530, token=root:Milvus)

Zilliz Cloud

client = MilvusClient( uri=https://in03-xxxx.api.gcp-us-west1.zillizcloud.com:19530, token=yourapikey )

参数:

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

异步客户端

python
from pymilvus import AsyncMilvusClient

async with AsyncMilvusClient(uri=http://localhost:19530) as client:
results = await client.search(...)



集合管理

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

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

这将自动创建:

  • - id 字段(INT64,主键,自动 ID)
  • vector 字段(FLOAT_VECTOR,维度=dimension)
  • 向量字段上的 AUTOINDEX
  • 集合自动加载

自定义模式创建

python
from pymilvus import DataType

步骤 1:定义模式

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)

步骤 2:定义索引

indexparams = client.prepareindex_params() indexparams.addindex( field_name=embedding, index_type=AUTOINDEX, metric_type=COSINE )

步骤 3:创建集合

client.create_collection( collectionname=mycollection, schema=schema, indexparams=indexparams )

支持的数据类型

标量类型:

DataType说明
DataType.BOOL布尔值
DataType.INT8 / INT16 / INT32 / INT64
整数 |
| DataType.FLOAT / DOUBLE | 浮点数 |
| DataType.VARCHAR | 字符串(需要 max_length) |
| DataType.JSON | JSON 对象 |
| DataType.ARRAY | 数组(需要 elementtype、maxcapacity) |

向量类型:

DataType说明
DataType.FLOATVECTORFloat32 向量(需要 dim)
DataType.FLOAT16VECTOR
Float16 向量(需要 dim) |
| DataType.BFLOAT16_VECTOR | BFloat16 向量(需要 dim) |
| DataType.BINARY_VECTOR | 二进制向量(需要 dim) |
| DataType.SPARSEFLOATVECTOR | 稀疏向量(不需要 dim) |

add_field 参数

python
schema.add_field(
fieldname=myfield,
datatype=DataType.VARCHAR,
is_primary=False,
auto_id=False,
max_length=256, # VARCHAR 必需
dim=768, # 向量类型必需(稀疏向量除外)
element_type=DataType.INT64, # ARRAY 必需
max_capacity=100, # ARRAY 必需
nullable=False,
default_value=None,
ispartitionkey=False,
description=
)

其他集合操作

python

列出所有集合


collections = client.list_collections()

描述集合

info = client.describecollection(collectionname=my_collection)

检查集合是否存在

exists = client.hascollection(collectionname=my_collection)

重命名集合

client.renamecollection(oldname=oldname, newname=new_name)

删除集合

client.dropcollection(collectionname=my_collection)

将集合加载到内存(搜索/查询前必需)

client.loadcollection(collectionname=my_collection)

从内存释放集合

client.releasecollection(collectionname=my_collection)

获取加载状态

state = client.getloadstate(collectionname=mycollection)

获取集合统计信息

stats = client.getcollectionstats(collectionname=mycollection)

集合指导

  • - 快速创建最适合原型开发;生产环境使用自定义模式。
  • 集合必须在搜索或查询操作前加载
  • 删除集合前,请与用户确认——这将删除所有数据。
  • 使用 enabledynamicfield=True 允许插入模式中未定义的字段。

向量操作

目标集合必须存在且已加载。

插入

python
data = [
{id: 1, text: AI advances, embedding: [0.1, 0.2, ...]},
{id: 2, text: ML basics, embedding: [0.3, 0.4, ...]},
]
res = client.insert(collectionname=mycollection, data=data)

返回:{insert_count: 2, ids: [1, 2]}

更新插入(如果主键存在则插入或更新)

python
res = client.upsert(collectionname=mycollection, data=data)

返回:{upsert_count: 2}

搜索(向量相似度)

python
results = client.search(
collectionname=mycollection,
data=[[0.1, 0.2, ...]], # 查询向量列表
anns_field=embedding, # 向量字段名称
limit=10, # Top-K
output_fields=[text, id], # 要返回的字段
filter=age > 20 and status == active, # 可选的标量过滤器
search_params={
metric_type: COSINE,
params: {nprobe: 10} # 索引特定参数
}
)

返回:List[List[dict]]


每个命中结果:{id: ..., distance:

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 milvus-1776207014 技能

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

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

通过命令行安装

skillhub install milvus-1776207014

下载

⬇ 下载 milvus v1.0.0(免费)

文件大小: 6.17 KB | 发布时间: 2026-4-17 15:24

v1.0.0 最新 2026-4-17 15:24
Initial release of the Milvus skill — operate Milvus vector databases via Python and pymilvus.

- Connect to Milvus (Lite, Standalone, Cluster, or Zilliz Cloud) with flexible authentication.
- Create collections with auto or custom schemas, including a full range of data types.
- Perform vector insert, upsert, search, query, get, and delete operations.
- Manage indexes, partitions, databases, and control access with RBAC.
- Includes guides for connection, collection management, operation parameters, and code examples.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部