news 2026/6/26 7:20:22

向量数据库介绍

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
向量数据库介绍

1. 什么是向量数据库?(非技术解释)

传统数据库(如MySQL)查找的是“完全匹配”的数据(比如where name = "张三")。
而向量数据库查找的是“最相似”的数据。

它存储的不是文字或图片本身,而是将这些数据“编码”成一长串浮点数(即向量,比如[0.256, -0.784, 1.203, ...])。这个向量代表了数据的“语义特征”。比如,“猫”和“老虎”的向量在空间中离得很近,而“猫”和“汽车”离得很远。

2. 核心算法原理(如何做到快速查找?)

如果数据量巨大,逐一比对向量距离(暴力搜索)极其缓慢。向量数据库的核心竞争力在于近似最近邻(ANN)算法,主要有三种经典索引:

  • HNSW(分层可导航小世界图):目前最主流。构建一张多层图网络,上层跳跃式粗查,下层精细搜索。优点:查询极快、召回率高;缺点:内存消耗极大。

  • IVF(倒排文件索引):先对所有向量进行“聚类”(分组),查询时只搜索离目标最近的几个组。优点:内存占用低;缺点:召回率略低于HNSW。

  • PQ(乘积量化):将高维向量压缩成更小的存储单元,大幅减少计算量。

现状:生产环境几乎都采用IVF + PQ + HNSW的混合策略(如Faiss的IVF-PQ或Milvus的混合索引),在内存、速度和精度之间取得平衡。

3. 主流向量数据库选型对比(2026年视角)

目前市场已趋于稳定,分为三大阵营:

数据库定位与特点适合谁?
Milvus / Zilliz开源事实标准,专为向量设计,分布式能力强,支持GPU加速。生产级大规模(亿级向量)AI应用,如搜索引擎、推荐系统。
Pinecone全托管云服务,运维简单,索引构建速度极快,但价格较贵且封闭。创业公司快速验证MVP,不想自建运维团队。
QdrantRust编写,性能极高,内存安全,支持过滤和向量混合搜索。注重高性能和稳定性,且需要复杂标量过滤的场景。
Elasticsearch在原有版本上增加了向量插件。已有ES架构,不想引入新组件,且对向量精度要求不极致的团队。
Chroma / LanceDB轻量级,嵌入式,专为LLM应用开发(LangChain友好)。本地开发、原型验证、个人知识库助手。

4. 核心应用场景(不仅限于RAG)

很多人以为向量数据库只用来做知识库问答(RAG),其实这只是冰山一角:

  • RAG(检索增强生成):把企业文档切片向量化,让大模型在回答前先“查阅”相关上下文,解决幻觉问题。

  • 多模态搜索:以图搜图、以文搜音(如淘宝拍立淘、音乐识别)。

  • 推荐系统:将用户行为特征向量化,实时检索与当前用户最相似的“邻居”的喜好物品。

  • 药物/分子发现:将分子结构编码为向量,在化学空间中快速找到结构相似的化合物。

5. 避坑建议(关键)

  • 不要迷信“向量”:实际业务中,“标量过滤”(Metadata Filtering)比向量相似度更重要。比如“查找与这张图片相似的,且价格在100元以内、品牌是Nike的商品”。如果数据库不支持高效的标量过滤,查询会非常慢。

  • 维度灾难:向量维度超过768维后,提升精度带来的算力成本急剧上升。尽量使用通用Embedding模型(如OpenAItext-embedding-3-small)或针对业务微调的模型,不要盲目增加维度。


工作原理

第一阶段:写入数据(如何把“苹果”变成数字?)

这个过程叫向量化(Embedding),核心是“语义理解”而非“关键词匹配”。

  1. 输入:你传入一段文本(如“苹果很好吃”)、一张图片或一段音频。

  2. 调用模型:数据库内部或外部调用一个Embedding模型(如OpenAI的text-embedding-3或开源的BGE)。

  3. 输出向量:模型将输入转化为一个高维浮点数数组,例如[0.12, -0.58, 0.93, ... , 0.41](通常有 384、768 或 1536 个维度)。

  4. 存储+索引

    • 原始数据(文本/图片URL)存入对象存储。

    • 向量数据存入专门的向量列。

    • 最关键的一步:数据库立即对这个向量执行索引构建算法(如HNSW或IVF),把它挂载到特定的“图结构”或“聚类簇”中,为后续快速查询做准备。


第二阶段:查询数据(如何在一亿条数据中“闪电”找到最像的?)

如果暴力遍历一亿条向量进行余弦相似度计算,一次查询需要几秒钟,这不可接受。向量数据库使用“粗略筛选 + 精细重排”的两阶段策略。

步骤 1:查询向量化

你输入“新鲜的水果”,系统用同一个Embedding模型将它转化为向量Q

步骤 2:近似最近邻搜索(ANN)——提速核心

系统不会遍历所有数据,而是利用事先建好的索引进行“作弊式”查找:

  • 如果使用 IVF(倒排索引):系统会先计算Q属于哪个“聚类簇”(相当于先确定它在哪个城市),只搜索该簇内的向量,排除掉其他99%的不相关数据。

  • 如果使用 HNSW(层级图):系统从最顶层的“高速路”节点开始,跳跃式地找到离Q最近的几个入口点,再逐层向下细化,像下楼梯一样快速定位到最底层的小范围邻居群。

步骤 3:标量预过滤(极易踩坑的环节)

如果你的查询带有条件(例如“新鲜的水果,且价格<10元,产地为山东”),数据库会执行Pre-filter(预过滤)Post-filter(后过滤)

  • 预过滤:先在价格<10元且产地为山东的记录中,再计算向量相似度(精准但可能漏掉向量极相似但标量不符的优质结果)。

  • 后过滤:先找出向量最相似的Top 200条,再从中筛选出价格<10元的(速度快,但若Top 200里没有符合条件的,返回结果为空)。

  • 高级数据库(如Milvus)支持迭代式过滤,平衡两者。

步骤 4:精确重排与打分

对于筛选出的候选集(比如100条),系统才进行精确的余弦相似度欧氏距离计算,按分数从高到低排序。

步骤 5:返回结果

数据库将排序后的Top K条结果(如最相似的5条)连同原始文本/图片URL一起返回给你。


关键补充:写入与查询的“坑”

环节常见误区正确逻辑
模型一致性用“百度”的模型入库,用“OpenAI”的模型查询。入库和查询必须使用完全相同的Embedding模型,否则向量空间不互通,查询结果完全错误。
索引更新每插入一条数据就重建一次全局索引。新数据先写入缓冲区,达到阈值(如512MB)后才触发索引构建,因此向量数据库不适合频繁单条更新的业务(写放大严重)。
删除逻辑物理立即删除。绝大部分向量数据库对删除是标记为“墓碑”(软删除),查询时过滤掉,后台异步物理清理,避免索引结构剧烈抖动。

一句话总结

写入时:用AI模型将非结构化数据“翻译”成空间坐标(向量),并建立索引地图。
查询时:将你的问题也“翻译”成坐标,利用索引地图快速跳过99%的区域,只在最可能的小范围内进行精确距离计算,最后返回离你坐标最近的原始数据。

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

Aperty深度解析:声明式开发与可视化编排如何重塑应用构建

1. 项目概述&#xff1a;从“Aperty”看现代应用开发的效率革命最近在技术社区和开发者圈子里&#xff0c;一个名为“Aperty”的项目开始频繁被提及。乍一看这个名字&#xff0c;你可能会联想到“Aperture”&#xff08;光圈&#xff09;或者“Aptery”&#xff08;无翼鸟&…

作者头像 李华
网站建设 2026/6/26 7:17:42

Microsoft Entra 外部 ID MFA 全栈实战:从租户配置到内外一体化防护

客户登录接口是网络攻击的核心目标&#xff0c;攻击者仅凭一套泄露或重复使用的密码&#xff0c;就足以攻破面向客户的应用系统。Microsoft Entra 外部 ID&#xff08;原 Azure AD B2C&#xff09;作为微软官方客户身份与访问管理&#xff08;CIAM&#xff09;平台&#xff0c;…

作者头像 李华
网站建设 2026/6/26 7:17:02

服务可靠性设计指南

服务可靠性设计指南&#xff1a;构建坚如磐石的系统架构 在数字化时代&#xff0c;服务的可靠性直接决定了用户体验和企业声誉。无论是电商平台的秒杀活动&#xff0c;还是金融系统的实时交易&#xff0c;任何服务中断都可能造成巨大损失。服务可靠性设计指南正是为了解决这一…

作者头像 李华
网站建设 2026/6/26 7:16:52

端侧 AI 落地避坑指南(中):为什么 QAT 救不了精度?——对齐“融合后算子“的硬件物理约束

前言:一个令人困惑的现象 在上一篇文章中,我们深入探讨了量化的本质,并得出结论:QAT(量化感知训练)是保持精度的关键。但在实际工程中,你可能遇到过这样的困惑: 明明做了 QAT,精度还是崩塌了! 让我们看一个真实的案例: 某摔倒检测项目,工程师小王严格按照 QAT …

作者头像 李华
网站建设 2026/6/26 7:16:13

终极Windows掌机游戏优化:3步配置专业级控制器体验

终极Windows掌机游戏优化&#xff1a;3步配置专业级控制器体验 【免费下载链接】HandheldCompanion ControllerService 项目地址: https://gitcode.com/gh_mirrors/ha/HandheldCompanion 你是否曾为Windows掌机游戏体验不够流畅而烦恼&#xff1f;想要在掌机上获得专业级…

作者头像 李华
网站建设 2026/6/26 7:15:47

小程序毕业设计-基于SpringBoot与微信小程序的智能菇房环境监测系统设计与实现 物联网架构下基于SpringBoot小程序的菇房智能(源码+LW+部署文档+全bao+远程调试+代码讲解等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华