SuperAPI AI 工具集

pgvector

数据与分析

查看项目

更新于 10-15 22:38

技能介绍

pgvector 是 PostgreSQL 的扩展,用于在 SQL 中存储向量并运行精确或近似最近邻搜索,便于把向量与关系数据放在同一数据库内。

用途:需要在 Postgres 内做向量相似度检索、希望使用 SQL 原生 ANN 索引(HNSW 或 IVFFlat)并可调召回率与速度、或需要在多种应用语言中统一存储与查询嵌入时使用。

主要能力:支持 vector / halfvec / bit / sparsevec 等类型;提供距离运算符——L2(欧氏)用 <->、内积用 <#>(返回负内积)、余弦距离用 <=>、L1 用 <+>、二进制向量 Hamming 用 <~>、Jaccard 用 <%>;索引支持 HNSW 与 IVFFlat,HNSW 速度与召回更好但构建时间与内存更高,IVFFlat 构建更快、内存更低;每种距离函数或运算符类需单独建索引。

使用方式(前提:服务器已安装 pgvector,详见 references/installation.md):先启用扩展,再建表并查询: CREATE EXTENSION vector; CREATE TABLE items (id bigserial PRIMARY KEY, embedding vector(3)); INSERT INTO items (embedding) VALUES ('[1,2,3]'), ('[4,5,6]'); SELECT * FROM items ORDER BY embedding <-> '[3,1,2]' LIMIT 5;

限制与注意:近似索引会改变结果(召回率与速度权衡);索引通常需配合 ORDER BY <距离运算符> ... LIMIT ... 才能生效;<#> 返回负内积,需乘以 -1 得实际值;NULL 向量不被索引,余弦距离下零向量不被索引。

资料还列出客户端库文档(优先级):Python、Go、Node(JS/TS)、Java、Swift,以及安装、核心概念、索引、性能与过滤、类型与函数、故障排查等参考文档;具体安装步骤与各库用法暂未在资料中提供。

文档与仓库:https://github.com/pgvector/pgvector ;客户端库:Python https://github.com/pgvector/pgvector-python 、Go https://github.com/pgvector/pgvector-go 、Node https://github.com/pgvector/pgvector-node 、Java https://github.com/pgvector/pgvector-java 、Swift https://github.com/pgvector/pgvector-swift ;版本标签:https://github.com/pgvector/pgvector/tags 。