pgvector/pgvector
Open-source vector similarity search for Postgres
解决的问题
pgvector 是 PostgreSQL 的一个开源扩展,允许您在数据库内部直接存储和搜索向量嵌入。这消除了对独立专用向量数据库的需求,使您能够将嵌入与关系型数据一起保存,同时保持 ACID 兼容性,并支持标准 SQL 查询。
工作原理
它引入了新的 vector 数据类型和专用的距离运算符,用于执行相似性搜索。支持多种向量类型,包括单精度、半精度(halfvec)、二进制(bit)和稀疏向量(sparsevec)。
为了加速搜索,它提供了两种近似最近邻(ANN)索引类型:
- HNSW(分层可导航小世界):一种多层图索引,提供高查询性能和更优的速度-召回率权衡,但需要更多内存且构建时间较慢。
- IVFFlat(倒排文件平铺):将向量划分为列表(聚类),仅搜索最近的列表,相比 HNSW 具有更快的构建速度和更低的内存占用。
适用人群
已经使用 PostgreSQL 的开发人员和数据工程师,希望在 AI 应用(如 RAG 或推荐系统)中集成向量相似性搜索,而无需增加新的基础设施复杂性。
主要亮点
- PostgreSQL 集成:充分利用 PostgreSQL 的完整功能,如 JOIN、ACID 兼容性、时间点恢复等。
- 多样化的向量支持:支持单精度、半精度、二进制和稀疏向量。
- 多种距离度量:支持 L2 距离、内积、余弦距离、L1 距离、汉明距离和杰卡德距离。
- 混合搜索:可与 PostgreSQL 全文搜索结合,实现混合检索。
- 高级索引:包含迭代索引扫描,可在使用
WHERE子句过滤时提升召回率。
相关
- 项目
- 项目
- 项目
- 项目
- 项目