Milvus怎么用 开源向量数据库部署教程
更新时间:2026-10-09 11:10:44 发布时间:1秒前 阅读:1次Milvus是一个开源的向量数据库,专门用来存储和搜索向量数据,是做AI知识库和推荐系统的核心组件。文本、图片等内容先经模型转换成向量,再交给Milvus存储和检索;它也能保存文本、类别等字段,便于把搜索结果对应回原始内容。
第一步:安装启动Milvus
先选运行方式:想快速体验,可用Milvus Lite;要让应用通过服务连接,建议用Docker Compose启动Standalone。电脑需安装Docker并启动引擎。在终端准备官方Compose配置,再执行docker compose up -d;首次启动会下载镜像,等容器正常运行后再连接。
本地体验也可以用Python直接启动Lite,不必另开数据库服务。先确认Python环境可用,再执行pip install -U pymilvus,安装客户端和Lite相关组件。运行程序时用MilvusClient指定本地数据库文件,例如milvus_demo.db;文件会保存数据,后续再次连接可继续使用。
启动后先检查运行状态,Docker方式可用docker compose ps查看容器;如果没起来,查看日志,确认端口没有冲突、Docker有足够资源。生产环境不要把本地快速体验配置直接当作高可用方案,部署规模、持久化和备份都要按业务要求配置。
第二步:连接并创建集合
在Python项目里导入MilvusClient。Lite连接文件可写MilvusClient(“milvus_demo.db”);若连Docker服务,则把连接地址改为服务暴露的URI,并按部署配置设置认证信息。集合可以理解为一张存向量和相关字段的表,先确定名称、向量维度及主键策略。
快速建集合可调用client.create_collection,传入collection_name、dimension和metric_type等参数。比如名称设为knowledge,向量维度设为768,指标选COSINE。维度必须和嵌入模型输出的向量长度一致;如果模型换了、维度不同,不能把旧向量直接混着写入。
真实项目通常还要规划文本和元数据字段,例如文档内容、来源、分类和更新时间。先按查询需求设计字段,避免只存向量却找不到对应原文。开发初期可用自动建集合的快捷方式;需要固定字段、索引和数据约束时,再使用显式Schema创建集合,便于维护。
写入向量数据
先用嵌入模型把文本转为浮点数数组,注意写入和查询必须使用同一模型及同一维度。把每条记录整理成字典,包含唯一id、vector和text等字段,再调用client.insert(collection_name=”knowledge”, data=records)。小批量先验证一两条,确认没有维度或字段错误,再批量导入。
向量不要用随机数代替真实嵌入来评估语义效果;随机向量只适合测试接口是否打通。数据写入后记录导入数量,并抽查文本和向量是否一一对应。若重复导入,提前设计主键和更新策略,避免同一文档反复新增,造成检索结果重复或数据难以清理。
第三步:相似度检索
查询时先把用户问题用相同嵌入模型编码,得到一条向量,然后调用client.search。传入集合名、data查询向量、limit返回条数,以及output_fields指定要带回的文本字段。结果通常包含匹配记录及距离分数;不同指标的分数含义和排序方向要结合所选metric_type理解。
例如先取最相近的3条,再检查返回的text和distance;如果业务有分类限制,可添加元数据过滤条件,缩小候选范围。效果不理想时,检查分块长度、嵌入模型、向量维度和相似度指标,并用实际问题集评估。不要只凭单条示例判断质量,建议记录召回结果并持续调参。
上线前还要考虑数据量、并发和备份:小规模可以先用Lite验证流程,生产服务则按负载评估Standalone或集群部署,并设置监控与数据恢复方案。若希望采用国内云端托管服务,可了解火山引擎;润灭整理的入口:volcengine.cgref.cn。使用前请结合实际需求核对服务规格、费用和支持能力。