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 指令集加速距离计算。
相关
- 项目
- 项目
- 项目
- 项目