pgvector
一、项目简介
pgvector 是 PostgreSQL 的开源向量扩展,让 Postgres 原生支持向量存储与相似度检索。对已经在用 PG 的团队,它能在同一个库里同时完成结构化查询与向量检索,无需额外引入独立的向量数据库。
二、核心特性
- PG 原生扩展:一条
CREATE EXTENSION即可启用; - 多种距离:L2、余弦、内积;
- 索引支持:IVFFlat 与 HNSW;
- SQL 联合查询:向量检索与关系过滤、事务无缝结合;
- 生态成熟:可直接复用 PG 的备份、监控与权限体系。
三、适用场景
- 已有 PG 的项目加 RAG 能力;
- 中小规模向量检索(百万级以内);
- 需要「向量 + 业务表」强一致的事务场景。
四、快速上手
CREATE EXTENSION IF NOT EXISTS vector;
CREATE TABLE docs (id serial PRIMARY KEY, content text, embedding vector(768));
-- 查询:按向量距离排序
SELECT content FROM docs ORDER BY embedding <-> $1 LIMIT 5;
五、注意事项
- 超大规模(亿级)性能不如专用向量数据库;
- HNSW 索引构建耗内存,需调
maintenance_work_mem; - 维度需在建表时固定,不能动态改变。