搭建企业知识库之Milvus 向量数据库
好的我们来深入了解一下Milvus 向量数据库并结合你的 Windows 环境给出详细的安装步骤。一、Milvus 是什么为什么需要它Milvus是一款开源的、专门为高维向量数据设计的云原生数据库。简单说它就是为了解决“在海量非结构化数据文本、图像、音视频中快速找到相似内容”这个问题而生的。1.1 Milvus 的核心价值在 RAG 系统中Milvus 扮演着记忆中枢的角色环节作用Milvus 的贡献文档入库将企业文档切块、向量化存储向量 原始文本片段用户提问将问题向量化在 Milvus 中检索相似向量生成答案将检索到的内容交给大模型提供准确、可溯源的上下文1.2 Milvus 的典型应用场景检索增强生成RAG为大模型提供外部知识库让回答更准确、更实时推荐系统基于用户行为向量实时匹配最相似的商品或内容异常检测将交易、日志转化为向量快速发现离群点潜在欺诈多模态搜索支持用文本搜图片、用图片搜图片等二、Milvus 核心概念详解要熟练使用 Milvus需要先理解它的几个核心概念2.1 基本概念概念类比关系型数据库说明Collection集合表Table存储向量数据的逻辑容器需定义 SchemaPartition分区分区表可按业务、时间拆分数据便于隔离和查询优化Segment段数据文件数据实际存储的物理单元分为 Growing增量和 Sealed历史Entity实体行Row一条记录包含向量字段和标量字段Index索引索引加速向量检索的数据结构如 IVF、HNSW2.2 Schema 设计要点创建 Collection 时需定义两类字段frompymilvusimportFieldSchema,CollectionSchema,DataType fields[FieldSchema(nameid,dtypeDataType.INT64,is_primaryTrue),# 主键FieldSchema(nameembedding,dtypeDataType.FLOAT_VECTOR,dim768),# 向量字段必须FieldSchema(nametitle,dtypeDataType.VARCHAR,max_length200),# 标量字段FieldSchema(namecontent,dtypeDataType.VARCHAR,max_length2000),FieldSchema(namecreate_time,dtypeDataType.INT64)# 可用于时间过滤]2.3 一致性级别Milvus 提供 4 种一致性级别可根据场景权衡性能与一致性级别特点适用场景Strong读写强一致性能开销高金融交易、实时数据更新Bounded有限时间窗口内保证一致推荐系统、日志分析Session会话内读写一致交互式查询、用户会话Eventually最终一致性性能最优离线批量处理、非实时分析三、Milvus 架构解析Milvus 采用存算分离的四层架构实现了高可扩展性存储层工作节点协调服务访问层Proxy 节点无状态网关Coordinator 服务控制平面Query Node查询节点Data Node数据节点Index Node索引节点元数据存储etcd日志存储Kafka/Pulsar对象存储MinIO/S3Client3.1 各层职责层级组件核心职责访问层Proxy客户端入口请求路由、结果聚合、负载均衡协调层Coordinator集群控制平面元数据管理、任务调度、节点协调工作层QueryNode执行查询加载历史数据Sealed SegmentDataNode数据写入、日志订阅、数据持久化IndexNode异步构建索引存储层MetaStore (etcd)存储元数据集合 schema、节点状态LogStore (Kafka)存储 WAL 日志保证数据 durabilityObjectStore (MinIO/S3)存储向量数据、索引文件3.2 核心设计优势无状态节点Proxy、QueryNode、DataNode 均可水平扩展计算存储分离各层可独立扩缩容资源利用率高异步索引构建数据写入与索引构建解耦不阻塞写入四、索引类型与选型指南向量索引是 Milvus 实现高性能检索的关键。4.1 主流索引对比索引类型原理召回率查询延迟内存占用适用数据规模FLAT暴力全量扫描100%高秒级低 100 万IVF_FLAT倒排分区 精确向量可调90%-99%中毫秒级中100 万 - 1 亿IVF_PQIVF 乘积量化压缩中高85%-95%中低千万 - 亿级HNSW层次化近邻图高95%-99%低亚毫秒高 1 亿DISKANN磁盘优化索引中高90%-95%中高极低超大规模离线4.2 选型建议小规模100 万FLAT 足够简单可靠中大规模百万-千万IVF_FLAT平衡性能与资源超大规模亿级HNSW内存足够或 IVF_PQ内存受限内存有限IVF_PQ 或 DISKANN五、Windows 上安装 MilvusDocker 方式在 Windows 上部署 Milvus最推荐的方式是Docker。下面是最新2026年的详细安装步骤。5.1 环境准备步骤 1启用 WSL 2 和 Hyper-V以管理员身份运行 PowerShell执行# 启用 WSLdism.exe/online/enable-feature/featurename:Microsoft-Windows-Subsystem-Linux/all/norestart# 启用虚拟机平台dism.exe/online/enable-feature/featurename:VirtualMachinePlatform/all/norestart# 重启电脑Restart-Computer重启后设置 WSL 2 为默认版本wsl--set-default-version 2步骤 2安装 Docker Desktop访问 Docker 官网 下载 Docker Desktop for Windows安装时勾选“Use WSL 2 instead of Hyper-V”推荐安装完成后重启启动 Docker Desktop验证安装docker--version docker-compose--version5.2 下载并启动 Milvus步骤 1创建 Milvus 工作目录# 创建目录可自定义mkdir C:\milvus cd C:\milvus# 创建子文件夹用于数据持久化mkdir conf,db,logs,volumes,wal步骤 2下载 Docker Compose 文件访问 Milvus 官方发布页选择最新稳定版如 v2.4.6下载milvus-standalone-docker-compose.yml。或者直接用 PowerShell 下载# 下载 v2.4.6 版本的 compose 文件Invoke-WebRequest-Urihttps://github.com/milvus-io/milvus/releases/download/v2.4.6/milvus-standalone-docker-compose.yml-OutFiledocker-compose.yml步骤 3启动 Milvus# 在 C:\milvus 目录下执行docker-compose up-d首次启动会拉取镜像可能需要几分钟取决于网络。步骤 4验证启动状态# 查看容器状态docker-composeps# 应该看到三个容器milvus-standalone、milvus-minio、milvus-etcd# 状态均为 Up验证端口# 查看 Milvus 端口映射docker port milvus-standalone 19530/tcp# 应输出类似0.0.0.0:195305.3 安装图形化管理工具 Attu可选但推荐Attu 是 Milvus 的官方 GUI 工具方便可视化操作。步骤 1下载 Attu访问 Attu 发布页下载 Windows 版本.exe安装包。步骤 2安装并连接双击安装默认下一步启动 Attu连接信息Host:127.0.0.1Port:19530Name可选: 随意点击Connect连接成功后即可在 Web 界面中管理 Collections、查看数据、执行查询。5.4 验证安装Python 快速测试步骤 1安装 PyMilvuspip install pymilvus步骤 2测试连接与基本操作创建test_milvus.pyfrompymilvusimportconnections,Collection,FieldSchema,CollectionSchema,DataType,utility# 1. 连接 Milvusconnections.connect(host127.0.0.1,port19530)print(连接成功)# 2. 创建 Collectionfields[FieldSchema(nameid,dtypeDataType.INT64,is_primaryTrue),FieldSchema(nameembedding,dtypeDataType.FLOAT_VECTOR,dim128)]schemaCollectionSchema(fields)collectionCollection(nametest_collection,schemaschema)print(fCollection {collection.name} 创建成功)# 3. 插入数据importrandomimportnumpyasnp vectors[[random.random()for_inrange(128)]for_inrange(100)]idslist(range(100))collection.insert([ids,vectors])print(插入 100 条数据成功)# 4. 创建索引index_params{metric_type:L2,index_type:IVF_FLAT,params:{nlist:128}}collection.create_index(field_nameembedding,index_paramsindex_params)print(索引创建成功)# 5. 加载并搜索collection.load()search_vectors[[random.random()for_inrange(128)]]resultscollection.search(datasearch_vectors,anns_fieldembedding,param{metric_type:L2,params:{nprobe:10}},limit5)print(搜索结果,results[0].ids)# 6. 清理collection.drop()print(测试完成已清理)运行python test_milvus.py如果看到“连接成功”且没有报错说明 Milvus 已正常运转。六、在 RAG 系统中集成 Milvus结合你之前的搭建在 RAG 系统中使用 Milvus 的基本流程6.1 文档入库fromlangchain.text_splitterimportRecursiveCharacterTextSplitterfromlangchain_community.embeddingsimportOllamaEmbeddingsfrompymilvusimportCollection,connections# 1. 连接 Milvusconnections.connect(host127.0.0.1,port19530)# 2. 创建 Collection如果不存在# ...同上节 Schema 定义# 3. 读取文档、切分text_splitterRecursiveCharacterTextSplitter(chunk_size500,chunk_overlap50)chunkstext_splitter.split_documents(documents)# 4. 向量化embeddingsOllamaEmbeddings(modelnomic-embed-text)vectors[embeddings.embed_query(chunk.page_content)forchunkinchunks]# 5. 写入 MilvuscollectionCollection(knowledge_base)collection.insert([ids,vectors,texts,metadatas])6.2 查询检索# 1. 问题向量化query_vectorembeddings.embed_query(user_question)# 2. 在 Milvus 中搜索collection.load()resultscollection.search(data[query_vector],anns_fieldembedding,param{metric_type:IP,params:{nprobe:10}},limit5,output_fields[text,source])# 3. 取出检索到的文本片段retrieved_docs[hit.entity.get(text)forhitinresults[0]]总结Milvus 作为专业的向量数据库具备以下核心优势非常适合你的企业知识库需求维度Milvus 的优势性能亿级向量毫秒级检索支持 GPU 加速扩展性存算分离架构水平扩展无压力企业级支持 RBAC 权限、多租户、监控告警生态与 LangChain、Ollama、Spark 等无缝集成部署灵活支持本地、云、混合部署Windows 上可用 Docker 快速搭建按照上述步骤在 Windows 上完成 Docker 部署后你就可以将 Milvus 作为知识库的向量存储引擎与之前的 Ollama OpenClaw-cn 组成完整的 RAG 系统了。如果在安装过程中遇到具体问题欢迎随时提问。

相关新闻

MPC5634 eTPU:从协处理器架构到互补PWM实战开发指南

MPC5634 eTPU:从协处理器架构到互补PWM实战开发指南

1. 从“外设”到“协处理器”:重新认识MPC5634的eTPU如果你接触过一些主流的微控制器,比如STM32或者NXP的Kinetis系列,你对“定时器”的概念一定不陌生——无非就是几个计数器、几个比较/捕获寄存器,配上中断,用来做PW…

2026/8/25 17:14:32 阅读更多 →
Linux查看能否访问地址的方法汇总

Linux查看能否访问地址的方法汇总

方法一:使用 curl 测试(最推荐) # 测试能否访问并获取响应头(不下载正文) curl -I https://qyapi.weixin.qq.com# 如果只关心是否连通,可加上 -s 静默模式,并通过 $? 判断 curl -s -o /dev/nul…

2026/8/25 17:14:32 阅读更多 →
AI训练师:从提示工程到高价值职业的成长路径

AI训练师:从提示工程到高价值职业的成长路径

1. 从“AI牛马”到“AI训练师”:一个新兴职业的诞生最近,一个标题在科技圈和自由职业者社区里炸开了锅:“时薪3600美金,AI雇你来当牛马!”。初看之下,这像是一个耸人听闻的噱头,或者是对当下AI浪…

2026/8/25 17:14:32 阅读更多 →

最新新闻

前端人必看:如何用claude-code-subagents的React、Next.js专家加速Web开发

前端人必看:如何用claude-code-subagents的React、Next.js专家加速Web开发

前端人必看:如何用claude-code-subagents的React、Next.js专家加速Web开发 【免费下载链接】claude-code-subagents A comprehensive collection of 100 production-ready development subagents for Claude Code 项目地址: https://gitcode.com/gh_mirrors/cl/cl…

2026/8/25 17:56:08 阅读更多 →
MoneyManagerEx 数据库(.mmb)深度解析:SQLite 结构、QIF 导入导出与 GnuCash 迁移完全指南

MoneyManagerEx 数据库(.mmb)深度解析:SQLite 结构、QIF 导入导出与 GnuCash 迁移完全指南

MoneyManagerEx 数据库(.mmb)深度解析:SQLite 结构、QIF 导入导出与 GnuCash 迁移完全指南 【免费下载链接】android-money-manager-ex Local-first personal finance app. Encrypted, self-hosted, sync across devices. 项目地址: https://gitcode.com/gh_mirro…

2026/8/25 17:56:08 阅读更多 →
Google Play结算库集成避坑指南:构建健壮的客户端-服务端支付体系

Google Play结算库集成避坑指南:构建健壮的客户端-服务端支付体系

1. 项目概述:为什么Google结算库集成是个“技术雷区”? 如果你正在开发一款面向全球市场的移动应用或数字服务,并且打算通过应用内购买或订阅来盈利,那么集成Google Play结算库几乎是必经之路。听起来很常规,对吧&…

2026/8/25 17:56:08 阅读更多 →
query-json 1.0 路线图前瞻:模式解构、日期函数与大整数精度即将登场

query-json 1.0 路线图前瞻:模式解构、日期函数与大整数精度即将登场

query-json 1.0 路线图前瞻:模式解构、日期函数与大整数精度即将登场 【免费下载链接】query-json Faster, simpler and more portable implementation of jq-inspired language in OCaml 项目地址: https://gitcode.com/gh_mirrors/qu/query-json query-jso…

2026/8/25 17:56:08 阅读更多 →
如何在Messenger中构建好友网络?好友请求、用户搜索与联系人管理全解

如何在Messenger中构建好友网络?好友请求、用户搜索与联系人管理全解

如何在Messenger中构建好友网络?好友请求、用户搜索与联系人管理全解 【免费下载链接】Messenger iOS - Real-time messaging app 🎨 项目地址: https://gitcode.com/gh_mirrors/messe/Messenger Messenger(mChat)是一款用…

2026/8/25 17:56:08 阅读更多 →
BlackHole 音频回环驱动完整指南:macOS 录系统声音、跨应用传音频,3 分钟一步到位

BlackHole 音频回环驱动完整指南:macOS 录系统声音、跨应用传音频,3 分钟一步到位

BlackHole 音频回环驱动完整指南:macOS 录系统声音、跨应用传音频,3 分钟一步到位 【免费下载链接】BlackHole BlackHole is a modern macOS audio loopback driver that allows applications to pass audio to other applications with zero additional…

2026/8/25 17:55:07 阅读更多 →

日新闻

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

【题目来源】 https://www.luogu.com.cn/problem/P7912 【题目描述】 小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里&#x…

2026/8/25 0:00:34 阅读更多 →
Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG 【免费下载链接】transformers.js State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server! 项目地址: https:/…

2026/8/25 0:00:34 阅读更多 →
数学建模竞赛论文写作指南:从模型构建到学术表达的核心技能

数学建模竞赛论文写作指南:从模型构建到学术表达的核心技能

1. 项目概述:从“会做”到“会写”的竞赛核心跃迁“全国大学生数学建模竞赛”,这个名字对理工科学生来说,分量极重。每年,无数团队在三天三夜的时间里,为一个开放性问题绞尽脑汁,从建立模型、求解算法到编程…

2026/8/25 0:00:34 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/25 3:38:12 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/25 3:38:18 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/25 3:38:23 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/24 20:22:44 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/25 10:31:12 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/24 11:20:22 阅读更多 →