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 的全文搜索结合,实现关键词与语义搜索的联合查询。
  • 可扩展性工具:包含二进制量化和迭代索引扫描,用于在数据过滤时提升召回率。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目