SuperAPI AI 工具集

pgvector-knowledge-patch

数据与分析

查看项目

更新于 10-16 09:34

技能介绍

该资料是 pgvector 的知识补丁,基线为 pgvector 0.7.4,补充 0.8 指南与 0.8.0 新增内容,并延伸至 0.8.5 的参考与托管部署指引。

用途:帮助使用 pgvector 进行向量存储与近似最近邻检索的开发者了解 0.8 系列的变化与操作要点。

主要能力:

  • 迭代扫描:过滤最近邻查询时,近似索引先取候选再由 PostgreSQL 应用过滤,选择性 WHERE 可能使结果少于 LIMIT。HNSW 迭代扫描默认关闭,可选 strict_order(保持精确距离顺序)或 relaxed_order(放宽顺序以提升性能),受 hnsw.max_scan_tuples(默认 20000)和 hnsw.scan_mem_multiplier(默认 1)限制;IVFFlat 需启用 ivfflat.iterative_scan,受 ivfflat.max_probes 限制。距离 ORDER BY 应紧接 LIMIT。
  • 类型与索引限制:vector/halfvec 存储上限 16,000 维,HNSW 分别为 2,000/4,000 维,IVFFlat 同样支持至 2,000/4,000 维;bit 上限 64,000 位,sparsevec 存储 16,000 个非零元素但 HNSW 上限 1,000 个且不支持 IVFFlat。HNSW 还支持稀疏向量、L1 与 Jaccard 距离。近似索引会忽略 NULL 嵌入,余弦索引忽略零向量。
  • 重排与量化:二值量化 HNSW 索引更小,但 Hamming 距离仅用于选候选,需取更多候选再用原向量重排。子向量可用表达式索引检索,查询表达式、cast 和操作符类须与索引完全一致。混合维度列需用部分表达式索引并在查询中重复 cast 与谓词。
  • 稀疏向量:字面量格式为 {index:value,...}/dimensions,索引从 1 开始,PostgreSQL 数组可直接转为 sparsevec,HNSW 使用对应 sparsevec_*_ops 操作符类。

使用方式与限制:pgvector 0.8 不再支持 PostgreSQL 12,需 13 或更新;源码构建固定 0.8.5,容器覆盖 PostgreSQL 13 至 18,例如 docker pull pgvector/pgvector:0.8.5-pg18-trixie。可移植构建应清空 OPTFLAGS:make OPTFLAGS=""。并行 HNSW 构建需将容器共享内存设为至少 maintenance_work_mem,如 docker run --shm-size=1g。修改索引定义、过滤查询形态、构建资源或部署目标前应查阅对应参考资料。

资料未提供收费、价格或具体托管平台清单等信息。