Milvus使用指南(上)

1、安装Docker DeskTop

生产环境推荐Docker安装

1.1 下载安装包

官网:https://www.docker.com/

1.2 安装

步骤1:点击OK即可

步骤2:等待安装完成

步骤3:重启电脑或稍后自行重启

步骤4:接受服务协议

步骤5:完成安装

2、安装Milvus

1. 准备 Docker

先确保 Mac 安装并启动 Docker Desktop:

复制代码
docker --version
docker ps

2. 创建 Milvus 工作目录

复制代码
mkdir -p ~/milvus
cd ~/milvus

3. 下载 Milvus Standalone 脚本

复制代码
curl -L "https://raw.githubusercontent.com/milvusio/milvus/master/scripts/standalone_embed.sh" \
  -o standalone.sh
复制代码
standalone_embed.sh 是 Milvus 官方提供的 Standalone 部署脚本。-o standalone.sh 表示将下载的文件保存为本地的 standalone.sh。

4. 添加执行权限

复制代码
chmod +x standalone.sh

5. 启动 Milvus

复制代码
bash standalone.sh start

6. 查看运行状态

复制代码
bash standalone.sh status

同时可以通过: 查看 Milvus 相关容器。

7. 常用操作

复制代码
# 启动
bash standalone.sh start

# 重启
bash standalone.sh restart

# 停止
bash standalone.sh stop

# 升级
bash standalone.sh upgrade

# 删除
bash standalone.sh delete

3、测试前准备工作

安装Milvus Python SDK

复制代码
 pip install pymilvus # 已在requirements_full.txt文件中安装

Milvus Lite已包含在Milvus的Python SDK中,此处不用Milvus Lite,直接访问在docker desktop安装 的、Standalone模式的Milvus服务。

Milvus数据模型

1 整体结构

从业务角度,Milvus数据模型层级如下

复制代码
Database -> Collection -> Partition -> Entit

Database:Milvus 的数据库,用来隔离不同业务数据。

Collection:最核心的逻辑容器,类似于关系型数据库里的 table。

Partition:分区,是 collection 的子集,不是必须手动创建;一个 collection 至少会有默认 partition。

Entity:可以理解为 collection 中的一条记录。类似于关系型数据库的一行数据。

2 具体说明

在传统数据库中,如果你想存储用户信息,你会建一张表叫 user_table ;想存储商品,会建一张表叫 product_table

在向量数据库中,我们要存储的是成千上万个"特征向量"以及它们对应的文本。为了把不同用途的向量 分门别类地存放,我们就要创建不同的 Collection。 比如, COLLECTION_NAME = "docs" 就是给这 张"表"取名叫 docs ,专门用来存放你切分好的文档片段向量。

4、基本用法

DDL操作

① 查看数据库

  1. 创建客户端

    from pymilvus import MilvusClient

    MilsClient = MilvusClient(host='localhost', port=19530)

举例2:列出所有数据库

复制代码
databases=MilsClient.list_databases()

for db in databases:
    print(db)

② 创建数据库

复制代码
db_name='rag_demo'
if db_name not in databases:
    MilsClient.create_database(
          db_name=db_name,
    )

③ 删除数据库

复制代码
如果数据库下有Collection则无法删除,需要先删除它的所有Collection才能删除Database
复制代码
MilsClient.drop_database(db_name=db_name)

Collection相关操作

① 切换数据库

复制代码
MilsClient.use_database(db_name=db_name)

上述命令的作用等价于关系型数据库中的 use

② 查看数据库下的collections

复制代码
collections =  MilsClient.list_collections()

for coll in collections:
    print(coll)

③ 创建collection

复制代码
collection_name='docs'

MilsClient.create_collection(
 collection_name=collection_name,
 dimension=1024,
 metric_type="COSINE",
)

dimension :嵌入向量维度,应和嵌入模型的向量维度保持一致

metric_type 表示向量相似度的计算方式, COSINE 表示余弦相似度

当用户提问时,系统会把提问也变成向量,然后去数据库里找"最相似"的本地文本向量。但怎么定 义"相似"呢? 向量数据库需要知道计算规则。 COSINE (余弦相似度)关注的是两个向量在方向上 的夹角:

如果两个向量方向完全一致(代表文本意思极度接近),余弦值接近 1 。

如果方向正交(毫无关系),值接近 0 。

结论:在 RAG 检索时,Milvus 会帮你计算用户问题与数据库中所有文本的余弦相似度,并把得分(Score)从大到小排序,把得分最高(最相似)的前 K 个片段还给你。 (注:除了COSINE 之外,常见的还有 L2 欧氏距离、 IP 内积等。)

④ 删除collection

复制代码
MilsClient.drop_collection(collection_name=collection_name)
相关推荐
91刘仁德10 小时前
RAG实战-从 NoSQL 到 Milvus 混合检索的架构演进
架构·nosql·milvus
91刘仁德11 小时前
RAG实战 - 向量数据库(Milvus)
数据库·milvus
梦想不只是梦与想15 小时前
向量数据库Milvus: 管理与工具
大模型·milvus·attu
海天一色y9 天前
生产级医疗AI Agent:Multi-Agent RAG架构解析
redis·milvus·multi-agent
Hrain-AI9 天前
AI 爬虫三档授权工程落地:搜索放行、训练拦截、Agent 分层(附脚本)
人工智能·elasticsearch·milvus
happy_king_zi10 天前
Milvus 生产环境部署,优化,日常维护中遇到的问题
llm·milvus
jason_renyu11 天前
Windows 环境下 Python 方式安装 Milvus 向量库与 Attu 避坑指南
人工智能·milvus·windows安装milvus·windows安转向量库
forestsea12 天前
从零构建 Java 智能体 RAG 系统:Milvus 向量数据库实战指南
java·数据库·milvus
java_logo13 天前
Docker 部署 Milvus:轻松搭建高性能向量数据库平台
数据库·docker·私有化部署·milvus·向量数据库·rag·轩辕镜像