Chico Notes
LLM Wiki / RAG

向量数据库选型:不要只看 QPS 和价格

从检索能力、过滤、多租户、混合检索、运维、成本和生态角度选择 Milvus、Qdrant、Weaviate、Pinecone、pgvector、Elastic 等方案。

持续修订的工程笔记

向量数据库选型很容易被简化成性能对比:谁 QPS 高、谁延迟低、谁更便宜。但在企业 RAG 里,更关键的问题通常是过滤、多租户、混合检索、增量更新、权限裁剪、备份恢复和生态集成。

选型观点

向量库不是独立存在的数据库,而是 RAG 检索链路的一部分。它必须和全文检索、权限系统、数据管道、评测平台一起考虑。

选型维度

维度要问的问题
检索能力支持 HNSW、IVF、PQ、量化、多向量、稀疏向量吗?
过滤能力metadata filter 在高基数、多条件、权限过滤下性能如何?
混合检索是否原生支持 BM25 + vector,还是需要外部搜索引擎配合?
多租户namespace、collection、tenant 隔离怎么做?
更新删除文档更新、权限变更、删除是否容易传播到索引?
运维备份、扩容、监控、升级、灾备是否成熟?
成本内存、磁盘、计算、托管费用、重建成本如何?
生态LangChain、LlamaIndex、OpenTelemetry、云服务集成是否顺畅?

常见方案定位

方案适合场景注意点
pgvector小中规模、已有 PostgreSQL、权限和业务数据强绑定大规模 ANN、复杂混合检索和横向扩展要谨慎。
Milvus / Zilliz大规模向量检索、分布式部署、索引类型丰富运维复杂度高于轻量方案。
Qdrantpayload filter、API 友好、RAG 工程落地快极大规模和复杂企业搜索需压测。
Weaviateschema、hybrid search、generative search 生态完整需要评估数据模型和部署模式是否匹配。
Pinecone托管服务、快速上线、运维负担低成本、供应商锁定和数据治理要评估。
Elastic / OpenSearch已有搜索体系、BM25、过滤、运维成熟向量能力和专用向量库相比需要具体压测。

架构组合方式

小团队可以从 pgvector 或托管向量库开始,降低运维成本。已有搜索基础设施的团队,应优先评估 Elastic、OpenSearch 或 Azure AI Search 的混合检索能力。向量规模很大、检索延迟要求高、索引类型复杂时,再考虑专用向量数据库。

Metadata Filter 是核心能力

企业知识库几乎一定需要过滤:租户、部门、权限组、文档类型、时间范围、产品线、语言、版本。过滤条件越复杂,越不能只看裸向量查询性能。

需要压测的问题:

  • 过滤是在 ANN 前、ANN 中还是 ANN 后执行?
  • 高基数字段,比如 user_id、tenant_id,性能是否稳定?
  • 多条件过滤和向量召回同时存在时,Recall 会不会下降?
  • 权限变更后索引多久生效?

压测清单

测试目的
Top-K 延迟看 P50/P95/P99,而不是平均值。
Recall 曲线不同索引参数下质量是否可接受。
过滤压测多租户、ACL、时间范围组合过滤。
写入压力批量导入、增量更新、删除。
重建成本换 embedding 模型或 schema 后重建多久。
故障恢复节点故障、备份恢复、版本升级。

推荐决策路径

  1. 数据量小、团队熟 PostgreSQL:先用 pgvector。
  2. 已经有 Elastic/OpenSearch:先验证混合检索方案。
  3. 需要快速上线且不想运维:评估 Pinecone、Zilliz Cloud 等托管方案。
  4. 需要可控部署和较强过滤能力:评估 Qdrant、Weaviate、Milvus。
  5. 多租户和权限复杂:把 filter 性能和权限更新作为第一优先级压测。

向量数据库选型没有通用最优。最好的选择是和你的数据规模、权限模型、搜索需求、运维能力和成本边界匹配。

讨论

继续讨论这篇笔记

有问题、补充案例或不同观点,可以通过 GitHub Discussions 继续交流。

On this page