AI 技能百科 English

Postgres + pgvector(向量检索)

AI 技能百科现代技术栈 · 最后更新: 2026-07-28

定义

pgvector 是 PostgreSQL 的扩展,提供原生 vector 列类型、相似度运算符(余弦、L2、内积)和近似最近邻索引(HNSW、IVFFlat)。它让你把向量嵌入和关系数据存在同一个库里、用普通 SQL 做语义检索——对大多数 RAG 场景来说,Postgres 就是一个完全够用的向量数据库。

为什么对 AI 求职重要

“Postgres + pgvector”会原封不动地出现在 AI 职位 JD 里,因为它是务实的默认选择:团队本来就在用 Postgres,向量放同一个库意味着 JOIN、事务和权限控制全部免费获得。知道 pgvector 什么时候够用、什么时候该换专用向量库——这正是资深工程师被雇来做的判断。

核心概念

  • 向量存储——vector(1536) 列与距离运算符(<=> 余弦距离)。
  • ANN 索引——HNSW 与 IVFFlat:构建时间、召回率、内存占用的权衡。
  • 混合检索——向量相似度 + Postgres 全文检索(BM25 风格)+ 元数据过滤。
  • 带过滤的向量检索——WHERE 条件 + 向量排序的组合及其索引影响。
  • 扩展性——表分区、连接池(pgbouncer)、只读副本。
  • 替代方案——Pinecone、Qdrant、Weaviate;什么规模/功能需求值得上专用向量库。

学习路径

  1. 本地(Docker)装 pgvector,建带 vector 列的表,用嵌入 API 写入向量。
  2. 用余弦距离查 top-k 近邻;加 HNSW 索引并实测提速。
  3. 实现混合检索:在一条 SQL 里融合向量得分与 tsvector 全文排名。
  4. 接入 FastAPI 端点,完成一个最小 RAG 检索服务。
  5. 用 100 万+ 向量做压测,理解索引构建时间、召回率与内存表现。

资源链接