【向量Milvus】---- Docker部署Milvus向量数据库 保姆级教程
文章目录一、前言 二、Milvus是什么 三、应用场景 四、下载安装 环境前提步骤1下载编排文件步骤2启动Milvus服务步骤3查看运行状态步骤4常用运维命令五、实战案例 1. 安装依赖2. Python完整示例代码小结 ✅一、前言 随着**RAG检索增强生成、大模型应用普及传统关系型数据库无法高效处理高维向量相似度检索。Milvus** 作为开源高性能向量数据库广泛用于存储Embedding向量。本文采用**Docker Compose**一键部署单机版Milvus全程命令可直接复制运行最后附带Python向量检索实战案例快速上手向量检索开发。生成向量查询文本相似向量召回业务应用Embedding模型Milvus向量数据库二、Milvus是什么 Milvus是由Zilliz开源、专为向量相似度搜索设计的分布式向量数据库。核心能力存储高维向量支持**L2距离、余弦相似度**等度量方式底层依赖etcd元数据存储、MinIO持久化对象存储部署形态单机Standalone、集群分布式本文使用单机模式适合开发测试Milvus单机架构milvus-standalonemilvus-etcd元数据管理milvus-minio数据持久化客户端/PyMilvus三、应用场景 RAG知识库问答文档向量化存储检索相关片段送入大模型多模态检索以图搜图、音频、视频相似度匹配个性化推荐用户/商品Embedding向量召回相似内容风控异常检测行为特征向量识别异常样本生物信息检索分子、基因高维特征比对四、下载安装 环境前提服务器已安装DockerDocker Compose步骤1下载编排文件新建目录存放配置文件F:\docker-service\milvusmkdirmilvuscdmilvus# 下载官方docker-compose配置 到指定目录 F:\docker-service\milvuswgethttps://github.com/milvus-io/milvus/releases/download/v2.6.20/milvus-standalone-docker-compose.yml-OF:\docker-service\milvus\docker-compose.yml国内下载缓慢可手动浏览器打开链接保存文件步骤2启动Milvus服务# 进入目录cdF:\docker-service\milvusdockercompose up-d启动后自动拉起3个容器milvus-standalone主服务默认端口19530milvus-etcd元数据服务milvus-minio持久化存储步骤3查看运行状态dockercomposeps步骤4常用运维命令# 查看实时日志dockercompose logs-fmilvus-standalone# 停止服务dockercompose down# 停止并清理数据谨慎dockercompose down-v访问地址curl http://127.0.0.1:9091/healthz 客户端通过该地址连接Milvus五、实战案例 使用pymilvus实现连接库→创建集合→插入向量→相似度检索1. 安装依赖#依赖1pipinstallpymilvus#依赖2pipinstallsentence-transformers2. Python完整示例代码importosimporttimefrompymilvusimportMilvusClient,DataType os.environ[HF_ENDPOINT]https://hf-mirror.comdefprint_cost(start,desc:str):costround(time.time()-start,3)print(f✅【{desc}】耗时:{cost}s)returntime.time()if__name____main__:total_starttime.time()step_starttime.time()print(*50)print(1. 开始连接Milvus服务)clientMilvusClient(urihttp://127.0.0.1:19530)step_startprint_cost(step_start,连接Milvus)coll_nameleave_applicationvec_dim384print(\n2. 清理旧集合)ifclient.has_collection(coll_name):client.drop_collection(coll_name)print(等待集合彻底销毁...)wait_times0whileclient.has_collection(coll_name)andwait_times10:time.sleep(0.5)wait_times1print(旧集合删除完毕)step_startprint_cost(step_start,删除旧集合)print(\n3. 使用自定义Schema创建集合 IP索引重点不再用dimension简易模式)# 手动定义结构schemaMilvusClient.create_schema(auto_idFalse,enable_dynamic_fieldTrue)schema.add_field(field_nameid,datatypeDataType.INT64,is_primaryTrue)schema.add_field(field_namevector,datatypeDataType.FLOAT_VECTOR,dimvec_dim)schema.add_field(field_namecontent,datatypeDataType.VARCHAR,max_length1000)# 索引参数IPindex_paramsMilvusClient.prepare_index_params()index_params.add_index(field_namevector,index_typeFLAT,metric_typeIP)client.create_collection(collection_namecoll_name,schemaschema,index_paramsindex_params)step_startprint_cost(step_start,创建集合与索引)# 加载模型fromsentence_transformersimportSentenceTransformerprint(\n4. 加载中文Embedding模型)modelSentenceTransformer(all-MiniLM-L6-v2)step_startprint_cost(step_start,加载SentenceTransformer模型)# 请假数据leave_data_text[{id:1,content:张三申请6月10日请事假1天家中需要处理房屋装修事宜},{id:2,content:李四6月12日申请病假2天感冒发烧需要居家休养附有医院诊断单},{id:3,content:王五申请6月10日休事假回老家办理证件请假时长一天},{id:4,content:赵六6月15日申请年假3天计划外出旅游散心},{id:5,content:孙七6月12日身体不适申请病假一天去医院就诊}]print(\n5. 文本向量化)insert_list[]foriteminleave_data_text:vecmodel.encode(item[content],normalize_embeddingsTrue)insert_list.append({id:item[id],vector:vec,content:item[content]})step_startprint_cost(step_start,全部文本向量化)print(\n6. 插入数据)resclient.insert(collection_namecoll_name,datainsert_list)print(插入结果,res)# 强制落盘保证数据立即可检索Windows Docker必加client.flush(collection_namecoll_name)step_startprint_cost(step_start,插入向量数据flush)defsearch_leave(query_text,top_k3):t0time.time()query_vecmodel.encode(query_text,normalize_embeddingsTrue)resultclient.search(collection_namecoll_name,data[query_vec],limittop_k,metric_typeIP,# 和建索引完全一致output_fields[content])costround(time.time()-t0,3)print(f\n【查询】{query_text}| 查询耗时{cost}s)print(匹配结果)hitsresult[0]ifnothits:print(无匹配记录)returnforhitinhits:print(f相似度:{round(hit[distance],4)}|{hit[entity][content]})# 查询测试search_leave(6月10日谁请了事假)search_leave(哪些员工申请病假)search_leave(谁请假出去旅游)print(\n*50)print(f程序全部执行完毕总耗时{round(time.time()-total_start,3)}s)测试结果F:\docker-service\milvuspy2.py1. 开始连接Milvus服务 ✅【连接Milvus】耗时:0.02s2. 清理旧集合 等待集合彻底销毁... 旧集合删除完毕 ✅【删除旧集合】耗时:1.178s3. 使用自定义Schema创建集合 IP索引重点不再用dimension简易模式 ✅【创建集合与索引】耗时:2.583s4. 加载中文Embedding模型 Loading weights:100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████|103/103[00:0000:00,5866.72it/s]✅【加载SentenceTransformer模型】耗时:12.811s5. 文本向量化 ✅【全部文本向量化】耗时:0.064s6. 插入数据 插入结果{insert_count:5,ids:[1,2,3,4,5]}✅【插入向量数据flush】耗时:2.074s 【查询】6月10日谁请了事假|查询耗时0.022s 匹配结果 相似度:0.773|张三申请6月10日请事假1天家中需要处理房屋装修事宜 相似度:0.7177|孙七6月12日身体不适申请病假一天去医院就诊 相似度:0.6625|王五申请6月10日休事假回老家办理证件请假时长一天 【查询】哪些员工申请病假|查询耗时0.014s 匹配结果 相似度:0.4099|孙七6月12日身体不适申请病假一天去医院就诊 相似度:0.4032|张三申请6月10日请事假1天家中需要处理房屋装修事宜 相似度:0.3717|赵六6月15日申请年假3天计划外出旅游散心 【查询】谁请假出去旅游|查询耗时0.015s 匹配结果 相似度:0.6229|赵六6月15日申请年假3天计划外出旅游散心 相似度:0.4957|张三申请6月10日请事假1天家中需要处理房屋装修事宜 相似度:0.4798|孙七6月12日身体不适申请病假一天去医院就诊程序全部执行完毕总耗时18.782s F:\docker-service\milvus小结 ✅本文完成**Docker Compose**部署Milvus单机版理清基础架构并提供可直接运行的向量检索Demo。开发环境推荐使用本方案生产环境建议采用Milvus集群模式增加资源限制、数据备份与账号鉴权。如果你需要我可以额外补充Attu可视化管理工具的docker-compose部署命令方便图形化管理Milvus。

相关新闻

AI 怎样改变我们的生活和职业?Anthropic 经济指数报告给出的真实数据

AI 怎样改变我们的生活和职业?Anthropic 经济指数报告给出的真实数据

查睡觉建议凌晨 3 点最火、报税截止日前一天咨询量暴涨 8 倍、把任务整包交给 AI 的人反而最乐观……这些不是段子,而是 Anthropic 最新一期《经济指数报告(Cadences)》里的真实发现。 2026 年 6 月 26 日,Anthropic 发布了新一期…

2026/7/24 13:24:38 阅读更多 →
RetinaNet在药盒日期识别中的优化与应用

RetinaNet在药盒日期识别中的优化与应用

1. 项目概述:当药盒遇上RetinaNet 上周整理家庭药箱时,我盯着十几个药盒上模糊的保质期数字发了愁。这种场景想必大家都不陌生——药品过期风险、用药安全隐患往往就藏在这些难以辨认的小字里。这正是我们开发"基于RetinaNet的智能药盒日期识别系统…

2026/7/24 13:24:38 阅读更多 →
2026在线视频图片去水印网站怎么用?不限次数免费无需下载教程

2026在线视频图片去水印网站怎么用?不限次数免费无需下载教程

日常整理个人素材、剪辑自用内容、留存平台优质图文视频时,水印往往会影响画面观感,很多用户都在寻找适配手机、电脑、鸿蒙等多端,无需安装软件、操作简单的免费去水印方案。2026年市面主流去水印工具分为在线网页工具和免安装小程序工具两类…

2026/7/24 13:24:38 阅读更多 →

最新新闻

AI论文写作工具评测与宏智树核心优势解析

AI论文写作工具评测与宏智树核心优势解析

1. AI论文写作工具现状与核心痛点当前学术写作领域正经历着前所未有的技术变革,AI辅助写作工具已经从简单的语法检查进化到能够生成完整学术论文的阶段。我测试过市面上主流的9款工具后发现,它们在实际应用中存在三个典型问题:第一是学术规范…

2026/7/24 13:32:41 阅读更多 →
AI技术变革:伦理挑战与风险控制实践

AI技术变革:伦理挑战与风险控制实践

1. 技术变革的双刃剑本质当AlphaGo首次击败人类围棋冠军时,我在现场见证了观众席上凝固的震惊表情。那一刻我突然意识到,我们正站在文明史的奇点上——AI技术已经突破了从工具到伙伴的临界值。但就像核能既能为城市供电也能摧毁文明,AI的指数…

2026/7/24 13:32:41 阅读更多 →
LLM在知识管理中的革命性应用与实战解析

LLM在知识管理中的革命性应用与实战解析

1. 知识提取与传递的技术革命上周调试一个客户的知识管理系统时,我盯着屏幕上杂乱无章的PDF文档突然意识到:我们积累的知识资产,90%都沉睡在非结构化的文件堆里。这让我重新审视了LLM(大语言模型)在知识工程中的颠覆性…

2026/7/24 13:32:41 阅读更多 →
2026年大模型技术路线:长上下文、RAG、智能体与端侧部署

2026年大模型技术路线:长上下文、RAG、智能体与端侧部署

工具太多不知道怎么选、收藏太多真正用的太少、查找成本太高、工具入口分散、缺少适合开发者的整理方式——这五个问题困扰着大多数关注AI技术趋势的开发者。之前在(titiai.cn)上查了各模型在代码辅助、知识检索等场景的最新横评数据,自己动手跑了一轮实测。今天从长…

2026/7/24 13:32:41 阅读更多 →
GPT-5.6国内可用性解析:官方渠道、API接入条件与合规要求

GPT-5.6国内可用性解析:官方渠道、API接入条件与合规要求

工具太多不知道怎么选、收藏很多却很少使用、查找成本高、入口分散、缺少适合开发者的整理方式,是国内用户常见的五个痛点。职场人、学生和文案创作者可先通过AI工具聚合站( titiai.cn )按场景建立候选清单,再核对模型官网、开发文档与服务条款&#xff…

2026/7/24 13:32:41 阅读更多 →
Hugging Face:NLP与AI模型开发实战指南

Hugging Face:NLP与AI模型开发实战指南

1. 什么是Hugging Face? Hugging Face最初是一个专注于自然语言处理(NLP)的开源社区,现在已经发展成为AI领域最重要的基础设施之一。简单来说,它就像是AI界的GitHub,但更专注于机器学习模型的共享、部署和应…

2026/7/24 13:31:41 阅读更多 →

日新闻

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…

2026/7/24 0:00:29 阅读更多 →
AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口 AppCertDlls 位于 HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls。本文的程序功能是只读列出这个键在 64 位和 32 位注册表视图中的全部值,并显示每条值的来源、名称、类型和可安全显示的数…

2026/7/24 0:00:29 阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:29 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 3:59:20 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 1:23:39 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 17:49:47 阅读更多 →

月新闻