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,新颖性、技术与质量各项均为空。精确搜索时可以在不做近似搜索的情况下给出结果,存储与检索也能在同一数据库内完成,这一点是明确的;但规模扩大之后的行为以及许可证的表述,仅凭这份材料难以判断。