常见向量数据库有哪些,如何根据项目需求选型?
未标记
询问 AI
考查重点:检索需求与运维取舍。小规模可从 Chroma/pgvector 建基线,独立向量服务可比较 Milvus/Qdrant;用过滤、更新、召回延迟和维护成本实测选
本题目录
参考答案
核心回答
常见方案包括 Milvus、Qdrant、Chroma 等专用向量数据库,PostgreSQL 的 pgvector 扩展,以及 Elasticsearch、OpenSearch、Redis 等系统提供的向量检索能力。FAISS 也常用于向量检索,但它主要是相似搜索与聚类算法库,不能直接等同于提供完整数据管理、权限和服务接口的数据库。
选型先看需求,再筛选候选方案:
- 查询怎么做:只查相似向量,还是要同时满足租户、时间、文档版本等过滤条件,结合关键词与重排。
- 数据怎样变化:向量数量、维度、增长速度、更新删除频率,以及写入后多久必须可查、旧内容多久必须不可见。
- 质量与性能目标:在目标召回率下能否满足并发、尾部延迟、内存和费用预算。
- 交付与运维条件:现有数据库和搜索体系能否复用,是否需要分片、高可用、备份恢复、访问控制,团队能承担多少维护工作。
已有 PostgreSQL、需要向量与业务字段一起管理时,可以先评估 pgvector;已有 ES、又重视全文搜索和向量组合时,可以先评估现有搜索系统。专用数据库则作为独立检索服务的候选。最终用相同数据和查询条件验证,而不是规定“超过多少条就必须换某个产品”。
先分清算法库、扩展与数据库服务
FAISS 主要围绕向量索引提供构建、搜索和调参能力,适合嵌入应用、离线处理或自建检索服务。它可以保存和读取索引,也有按向量 ID 限定搜索范围的机制;因此不能简单说它“没有持久化、不能过滤”。但文档与元数据如何关联、数据同步、访问控制、服务并发和故障恢复,仍要由应用或外围系统组织。
pgvector 是 PostgreSQL 扩展,把向量与普通业务字段放在同一数据体系中,能够利用 PostgreSQL 的事务、关联查询和恢复等能力。它有精确检索,也支持 HNSW、IVFFlat 等近似索引。已有 PG 时,这种方式可能减少额外服务和双写链路,但仍需验证索引、过滤、资源竞争与容量,不能只因复用方便就认定一定合适。
Elasticsearch、OpenSearch 等搜索系统的向量能力,适合放在已有全文检索、文档字段和搜索运维体系里一起评估。向量检索、关键词搜索与元数据条件的组合方式,需要结合具体产品版本和查询结构核对。
Milvus、Qdrant 等专用数据库及云托管服务,则把向量检索作为主要能力提供。是否支持项目所需的过滤、索引、更新、扩展和隔离,仍要逐项核对部署形态与版本。自建意味着承担集群、备份和升级工作;托管减少部分运维投入,同时需要评估费用、服务限制和数据迁移。
这些类别有交集,不是能力高低的固定排名。小项目也可能需要严格隔离和持续更新,大数据量的离线任务也可能适合算法库。
把业务条件带进检索测试
以企业知识库为例,查询除了语义相近,还可能要求“当前租户、有效版本、用户有权阅读”。这些条件决定了可接受的结果集合,不能等模型拿到内容后才补做权限判断。
还要区分过滤语义与底层执行方式。有的查询在近似搜索过程中限定范围,有的先取近邻候选再过滤。假设全局取回的候选大多不属于当前租户,过滤后只剩少量结果,即使授权范围内仍有相关资料,也可能没有返回足够候选。
pgvector 的近似索引就需要注意这种过滤行为;当前文档提供迭代扫描等方式继续寻找匹配结果,也可以结合过滤字段索引、部分索引或分区评估。ES 的 kNN 查询则明确区分专门的预过滤参数与其他位置的后过滤条件。两者都说明:同样写了一个过滤条件,查询结构和执行策略仍可能影响召回与延迟,不能把某种行为推给所有向量库。
若需要产品编号、错误码等精确匹配,还应测试关键词与向量的组合,而不只看纯语义检索。重新排序可以改善候选顺序,却补不回根本没有召回的证据。
更新、删除和一致性同样决定能否落地
文档更新通常涉及正文、分块、向量和元数据。应维护稳定的文档或片段标识及版本,明确新增片段怎样入库、旧片段怎样失效。业务源更新成功,不等于检索索引已经更新;接口返回成功后,还要按产品约定验证可查询状态。
选型时可以用几类具体操作检查:刚写入的文档何时能搜到,修改后是否仍出现旧内容,删除后是否还会被召回,权限变更能否及时生效,以及批量更新期间查询是否稳定。缓存也要纳入,否则索引删了,应用仍可能返回旧结果。
有些系统可以在同一数据库内管理业务字段和向量,另一些系统需要同步任务或消息管道。前者要关注同库查询与业务负载的资源竞争;后者要关注失败重试、重复写入和跨系统一致性。采用哪一种,应看项目允许的延迟、故障处理方式与维护成本。
用同条件测试比较,而不是套产品规模表
先固定 Embedding 模型、向量维度、距离度量、分块与数据快照,再为各方案选择满足目标的索引和参数。测试查询应包含正常语义问题、精确编号、严格过滤、无答案,以及更新删除后的请求。
比较时同时记录:近邻召回、业务证据覆盖、P95/P99 延迟、目标并发下的吞吐、索引构建时间、写入更新代价、内存磁盘和总费用。ANN 相对精确近邻的召回率与业务所需证据是否找到是两项指标:前者检查索引近似造成的损失,后者还受 Embedding、分块和检索策略影响。向量距离排得准,也不保证资料能回答业务问题。
容量也不只由条数决定。例如 100 万条、768 维、每维 4 字节的原始向量,约占 1,000,000 × 768 × 4 = 3.072 GB,这里使用十进制 GB。索引、元数据、原文、副本和更新中的临时空间还需另算。这只是容量计算示例,不是任何产品的内存或性能基准。
如果已有方案在质量和预算内达标,继续复用往往能减少系统复杂度;只有出现明确瓶颈,再根据测量结果决定调参、调整索引或引入专用服务。
追问:做 RAG 一定要向量数据库吗?
不一定。RAG 的关键是取得可用外部证据,可以通过关键词、SQL、已有搜索系统或外部 API 检索。需要语义近邻搜索时,也可以先用精确扫描建立质量基线;是否需要 ANN 或独立向量服务,取决于数据形态与目标负载。不能把“使用了向量数据库”当成 RAG 效果好的证明。
对应教程
- 第 18 章:向量数据库与 Embedding 实战:§2 介绍向量、元数据与常见方案,§6.4 说明过滤、混合检索和重排;本文进一步按更新、一致性、运维和同条件测试展开选型。教程采用 Redis 的教学选择,不代表项目只能在 Redis 与 Milvus 之间二选一。
参考资料
- 国内:JavaGuide:RAG 向量索引算法和向量数据库:借鉴索引、元数据过滤与 pgvector 的取舍,说明正文中检索质量、资源和查询条件需要一起评估。
- 国内:Datawhale:第八章 记忆与检索:参考结构化信息、文档原文与向量的分工,说明正文中标识、元数据和跨系统同步也是选型要求。
- 国内:腾讯云:向量数据库更新数据:依据文档 ID、过滤字段、更新与查询确认,说明正文中支持更新需细化为可检查的数据维护行为。
- 国内:阿里云:表格存储使用向量检索:依据向量字段、Top-K、过滤与索引前提,说明正文中复用已有存储时需要验证查询和权限条件。
- 国外:Meta FAIR:FAISS README:依据库定位与索引质量、内存和构建成本的区别,说明正文中 FAISS 与完整数据库服务的层级分工。
- 国外:pgvector:官方 README:依据 Indexing、Filtering 与 Iterative Index Scans,说明正文中精确、近似检索和过滤后候选不足的处理;迭代扫描从 0.8.0 起提供,需核对实际版本。
- 国外:Elastic:Knn query:依据 Pre-filters and post-filters 的执行区别,解释正文中过滤位置为何影响最终近邻数量。
相关面经
16 篇华为
AI 开发工程师靖安科技
后端工程师(RAG/Agent 项目)用的什么向量数据库
阿里巴巴
AI 应用开发工程师Embedding 模型和向量数据库是如何选择的?
金山软件
AI 全栈开发工程师常见的向量数据库有哪些?有没有用过?
快手
Agent 应用开发工程师做 Agent 项目你常用什么向量库?
展开剩余 11 篇面经
阿里巴巴
大模型应用开发工程师(RAG 方向)哔哩哔哩(B站)
后端开发工程师(游戏广告)使用的是什么向量库(faiss、 postgresql、milvus)
阿里巴巴
Agent 应用开发工程师rag向量数据库用的哪个
商汤
大模型应用算法工程师RAG 原理,项目里有哪些相关经验,向量数据库、相似度计算、chunk 切片策略。
百度
AI 应用开发工程师为什么没用向量数据库?(补了什么场景会用向量数据库)
腾讯
大模型应用开发工程师(RAG 方向)请介绍你在实习中负责的Agent+RAG项目的背景、整体技术方案,包括文档解析、分块策略、向量数据库的选型与存储方式,以及具体的检索查询流程。
网易
大模型应用开发工程师(RAG 方向)主流向量数据库选型差异,十万、百万、千万级数据量下检索性能和部署成本如何变化?
腾讯音乐
后端开发用的什么向量数据库?为什么选它?还了解哪些向量数据库?
淘天
大模型 Agent什么是RAG,为什么没选向量库?
腾讯
Agent 应用开发工程师向量数据库了解过吗,常见向量索引的实现细节
京东
大模型算法工程师向量检索的准召率如何保障?你使用的向量数据库之间的差异是什么?
收录题集
开发岗专项面试题
向量数据库选型问答
Agent Memory进阶追问
RAG与知识库
向量化与检索 能多介绍一下向量化吗?向量化模型?向量库?重排方式?
向量检索与Embedding选型 在RAG系统中,常见的向量检索模型有哪些?





