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)
相关推荐
TheBestRucy8 天前
从零构建企业级“中文法律智能问答系统”:FastAPI+Milvus+混合检索+真流式RAG实战
fastapi·milvus
Flynn Liang9 天前
内存/Redis/PGVector/Milvus/ES 怎么选?Spring AI VectorStore 抽象与向量库选型对照表
redis·elasticsearch·milvus·rag·springai·pgvector·向量库
kyrie_sakura10 天前
大模型学习19 大模型学习 - LangChain2_Retrieval(RAG-文档处理-向量处理检索-Milvus)
学习·langchain·milvus
Maiko Star10 天前
*【HM-LC】Milvus向量库详解:Collection、索引、混合检索与LangChain实战
langchain·milvus
霸道流氓气质12 天前
AI 图片管理平台:Spring AI 原生多模态、Milvus 向量语义检索与 MinIO 预签名安全管控的 React + 全栈生产级实战
人工智能·spring·milvus
一枕槐安48713 天前
多模态RAG实战:PDF图文混合文档检索问答本地跑通
langchain·pdf·milvus·ai应用开发·多模态rag
ai大模型-探索者17 天前
BGE-M3三种向量在Milvus怎么存(稠密、稀疏、多向量)
milvus·稀疏·多向量·稠密
唠点键盘之外的19 天前
29 切片的权限隔离(实战篇):Milvus + Spring AI,从 0 搭一条带权限过滤的检索链路
人工智能·spring·milvus
ai大模型-探索者19 天前
Milvus向量数据库(介绍与使用)
数据库·milvus
Crayon Lin20 天前
Milvus向量数据库入门
数据库·milvus