github.devotd.
新发现检索增强与搜索

pgvector/pgvector — 为 Postgres 增加向量相似度搜索的扩展

一个用 C 编写、为 Postgres 增加向量相似度搜索的扩展,支持 HNSW·IVFFlat 索引、多种距离函数,并可利用 ACID 与 JOIN。

仓库信息pgvector/pgvector ↗

一个用 C 编写、为 Postgres 增加向量相似度搜索的扩展,支持 HNSW·IVFFlat 索引、多种距离函数,并可利用 ACID 与 JOIN。

GitHub 项目说明: Open-source vector similarity search for Postgres

星标
★ 23.4K
复刻
1.4K
语言
C
许可证
NOASSERTION
查看原始来源 ↗在 GitHub 查看 ↗

pgvector 是为 PostgreSQL 增加向量相似度搜索的扩展。向量是每个元素都为数字的列表,距离运算用来衡量两个列表中的数值有多接近。README 把该项目介绍为一个开源的向量相似度搜索扩展,用于在 Postgres 中把向量与其他数据一并存储和检索。这是一个于 2021 年 4 月 20 日创建的 C 仓库,星标数为 23424。

这个扩展的核心在于把向量搜索一并放在 Postgres 内部处理。它同时支持精确搜索和近似最近邻搜索,并提供单精度、半精度、二进制与稀疏向量,以及多种距离函数。为实现快速查询,它支持使用 HNSW 和 IVFFlat 两类索引进行索引,同时沿用 Postgres 的 ACID 事务、时点恢复(point-in-time recovery)与 JOIN 能力。在已经在使用 Postgres 的环境中,这个扩展的立足点在于:不必为了向量搜索再多维护一个独立的存储。

不过,需要确认的边界也很清楚。所提供的来源中没有比较 HNSW 与 IVFFlat 处理速度的性能数据,也没有查到最新的发布标签,因此当前部署的版本无从得知。许可证同样没有确定的表述,仅以 NOASSERTION 保留。这一记录的评分只填了势能项 4.3,新颖性、技术与质量各项均为空。精确搜索时可以在不做近似搜索的情况下给出结果,存储与检索也能在同一数据库内完成,这一点是明确的;但规模扩大之后的行为以及许可证的表述,仅凭这份材料难以判断。