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 集成:利用 ACID 兼容性、JOIN 操作和时间点恢复功能。
- 多样的距离度量:支持 L2、内积、余弦、L1、汉明和杰卡德距离。
- 灵活的向量类型:可处理密集、半精度、二进制和稀疏向量。
- 混合搜索:可与 PostgreSQL 的全文搜索结合,实现关键词与语义搜索的联合查询。
- 可扩展性工具:包含二进制量化和迭代索引扫描,用于在数据过滤时提升召回率。
相关
- 项目
- 项目
- 项目
- 项目
- 项目