news 2026/10/2 8:20:43

cgft-llm Milvus向量数据库速成教程:RAG知识库不可或缺的语义检索底座

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
cgft-llm Milvus向量数据库速成教程:RAG知识库不可或缺的语义检索底座

cgft-llm Milvus向量数据库速成教程:RAG知识库不可或缺的语义检索底座

【免费下载链接】cgft-llmcgft-llm 是一个学习大语言模型(LLM)开发的开源资源。它提供代码、文档和视频教程,帮助用户通过实践掌握前沿核心 LLM 技术项目地址: https://gitcode.com/echonoshy/cgft-llm

如果你正在搭建 RAG 知识库,那么 Milvus 向量数据库 一定是绕不开的核心组件。它负责把文本变成向量、完成语义相似度检索,是整个 RAG 系统"以文找文"的语义检索底座。本文基于开源学习项目 cgft-llm 中的 Milvus 实战资料,用一篇速成教程帮你快速搞懂:Milvus 是什么、它和其他向量方案怎么选、以及从建表到检索的完整上手流程。

一、为什么 RAG 需要 Milvus 向量数据库?

大模型"有知识盲区",RAG(检索增强生成)的思路是:先从知识库里检索出与问题最相关的内容,再喂给 LLM 生成回答。

而"检索"这一步,靠的不是关键词匹配,而是语义相似度——两句话用词完全不同,只要意思相近就能被找出来。这就是向量数据库的用武之地:

  • 文本经过 Embedding 模型变成一组数字(向量)
  • 语义越接近,向量距离越近
  • 向量数据库专门负责海量向量的存储与快速相似度搜索

Milvus 正是其中最成熟的开源方案之一,广泛应用于 RAG 检索增强生成、对话机器人、图片识别、声纹识别等场景。

📌 在 cgft-llm 项目中,Milvus 相关内容位于 02-llm-core/milvus/,配套文档见 readme.md。

二、选型指南:Milvus vs Faiss vs ChromaDB

新手最常见的困惑:向量方案这么多,选哪个?下面是 readme.md 中总结的对比:

方案定位适合场景
Faiss高性能计算引擎纯向量计算加速,需自行搭配存储系统
Elasticsearch功能强大的搜索框架复杂搜索需求,功能复杂
Milvus全功能向量数据库大规模生产环境,支持 GPU 加速
ChromaDB轻量级向量数据库开发友好,适合轻量应用和快速迭代
Pinecone闭源托管服务不想自己运维的团队

一句话结论:学习期可用 ChromaDB 快速验证,上生产建议 Milvus。

三、了解 Milvus 的三个版本

Milvus 提供三种部署形态,按需选择:

  • Lite 精简版(开发版):无需服务器,指定一个本地文件路径即可跑起来,最适合新手学习
  • Standalone 单机版:生产环境入门选择
  • Distributed 分布式版:海量数据、高并发场景

本文的速成教程就用最轻量的Lite 版,一个文件搞定环境。

四、快速上手:连接 Milvus 并建集合

完整可运行代码在 quick-start.ipynb,核心步骤只有四步:

1. 安装与连接

安装官方 Python 客户端:

pip install pymilvus

Lite 版连接只需指定本地文件路径:

from pymilvus import MilvusClient # lite 版本指定本地文件路径 client = MilvusClient("./milvus_demo.db") # 其他版本连接方式(使用 HTTP 协议连接到远程服务器) # client = MilvusClient(uri="http://localhost:19530", token="root:Milvus")

2. 创建集合(Collection)

集合(Collection)相当于关系数据库中的"表",创建时只需指定向量维度:

client.create_collection( collection_name="demo_collection", dimension=10 # 向量维度 )

3. 插入数据

每条记录包含 ID、向量、文本以及任意附加字段(如主题标签):

data = [ {"id": i, "vector": vectors[i], "text": docs[i], "subject": "history"} for i in range(len(docs)) ] res = client.insert(collection_name="demo_collection", data=data)

4. 向量相似度搜索

这是 Milvus 最核心的操作——传入查询向量,返回最相似的 N 条记录,还支持过滤条件:

res = client.search( collection_name="demo_collection", data=[vectors[0]], # 查询向量 filter="subject == 'history'", # 过滤条件 limit=2, # 返回结果数量 output_fields=["text", "subject"], )

搜索结果会带distance相似度分数,距离越接近 1 表示语义越相关。

五、常用运维操作速查

除了增查,quick-start.ipynb 还演示了日常维护集合的常用方法:

操作方法说明
按属性查询client.query(filter=...)按标量字段精确筛选记录
删除数据client.delete(filter=...)按条件批量删除
查看统计client.get_collection_stats(...)获取集合实体数量等统计信息
查看结构client.describe_collection(...)查看字段定义、向量维度、索引类型
检查存在client.has_collection(...)判断集合是否存在
列出集合client.list_collections()列出所有集合

六、写在最后

回顾一下 Milvus 向量数据库的核心四件套:建集合 → 插数据 → 相似度检索 → 按属性增删查。掌握这四点,你就拥有了搭建 RAG 知识库语义检索底座的全部基础能力。

🚀 下一步建议:在 cgft-llm 项目中继续学习 rag-knowledge-base/ 的完整 RAG 知识库搭建,以及 llama-index/ 的文档索引实战,把 Milvus 真正用起来。

【免费下载链接】cgft-llmcgft-llm 是一个学习大语言模型(LLM)开发的开源资源。它提供代码、文档和视频教程,帮助用户通过实践掌握前沿核心 LLM 技术项目地址: https://gitcode.com/echonoshy/cgft-llm

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/2 8:20:24

从零搭建AI工程体系:数据、特征、模型、服务全链路实战

1. 从零搭建AI工程体系,为什么我劝你别一上来就调包"ai-engineering-from-scratch"这个标题,第一次看到的时候我愣了一下。不是因为陌生,恰恰相反,是因为它戳中了我这几年带团队、做项目最痛的一个点:太多人…

作者头像 李华
网站建设 2026/10/2 8:19:56

AI编程助手Skills完全指南:从安装到自写技能

最近好几个朋友都在问同一件事:AI 编程助手里的 skills 到底怎么装、怎么用、怎么自己写。老实说,我最早也被这个概念搞得有点晕——本来以为又是一堆提示词模板,真正用起来才发现,它比提示词系统得多,也实用得多。这篇…

作者头像 李华
网站建设 2026/10/2 8:18:35

GoWVP 开发者鉴权方案指南

GoWVP 开发者鉴权方案指南 本文档面向系统集成开发者与前端开发者,详细介绍 GoWVP(OWL)提供的三种接口鉴权机制、设计原理、配置方式及调用示例。1. 鉴权方案概览 GoWVP 支持以下三种鉴权模式,三种模式在网关中间件中无缝协同、层…

作者头像 李华
网站建设 2026/10/2 8:18:17

012-0401-Mysql-基础DDL、DML

MySQL概述 基本概念 数据库是什么? 数据库(DB:Database):存储数据的地方。 为什么要用数据库? 应用程序产生的数据是在内存中的,如果程序退出或者是断电了,则数据就会消失。使用数据库是为了能够永久保存数据。当然这里指的是非内存数据库。 用普通文件存储行不行…

作者头像 李华