timescale/pg_vectorsearch

High-performance vector search for PostgreSQL

解决的问题

该项目为 PostgreSQL 提供了高性能的向量搜索索引,旨在比现有替代方案更高效地处理大规模数据集(1 亿+向量)。它通过先进的量化和层次划分技术,解决了传统向量索引方法的性能瓶颈。

工作原理

它引入了 PRISM(Partitioned Routing Index for Similarity Matching)索引,这是一种原生的 PostgreSQL 访问方法。它使用层次质心树对向量进行聚类,并使用 RaBitQ 量化压缩数据,同时保持理论误差界限。在搜索过程中,系统遍历质心树以识别相关聚类,使用量化数据过滤候选集,并执行最终的高精度重排序。它利用 SIMD 指令(AVX2、AVX512、NEON)进行快速距离计算,并直接与 PostgreSQL 缓冲区缓存集成。

适用人群

适用于在 PostgreSQL 上构建 AI 驱动应用的数据库管理员和开发人员,他们需要对大型向量嵌入执行快速、可扩展的相似性搜索,并希望优化内存使用和查询延迟。

亮点

  • 高性能: 对于大型数据集,查询和索引构建时间显著快于 IVFFlat 和 HNSW。
  • 内存高效: 在 1 亿+向量上实现高召回率,同时使用的内存远少于基于图的替代方案。
  • pgvector 兼容: 可作为现有 vector 或 halfvec 列的即插即用替代品,无需重写表。
  • 先进量化: 使用 RaBitQ 减少全精度重排序的需求,加速搜索操作。
  • SIMD 优化: 利用现代 CPU 指令集加速距离计算。

相关

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