
pgvecto.rs是一个PostgreSQL扩展,提供高效的向量相似度搜索功能,采用Rust编写并基于pgrx框架。该Docker镜像已预先集成PostgreSQL与pgvecto.rs扩展,可快速部署具备向量搜索能力的数据库服务,适用于需要处理高维向量数据的场景。
| 特性 | pgvecto.rs | pgvector |
|---|---|---|
| 过滤功能 | 引入VBASE方法,支持向量搜索与关系查询(如单向量TopK+过滤+连接) | 应用过滤时结果可能不完整(如原计划返回10条结果,过滤后可能仅5条) |
| 向量维度 | 支持最高65535维 | 支持最高2000维 |
| SIMD优化 | 运行时动态调度SIMD指令,基于硬件能力最大化性能 | 0.7.0版本起为Linux x86-64的距离函数添加CPU调度 |
| 数据类型 | 引入额外数据类型:二进制向量、FP16(16位浮点数)、INT8(8位整数) | - |
| 索引机制 | 索引的存储和内存管理独立于PostgreSQL | 依赖PostgreSQL原生存储引擎 |
| WAL支持 | 提供数据的预写日志(WAL)支持,索引WAL支持开发中 | 提供索引和数据的预写日志(WAL)支持 |
通过Docker快速启动pgvecto.rs服务:
bashdocker run \ --name pgvecto-rs-demo \ -e POSTGRES_PASSWORD=mysecretpassword \ -p 5432:5432 \ -d tensorchord/pgvecto-rs:pg16-v0.2.1
参数说明:
--name:容器名称-e POSTGRES_PASSWORD:设置PostgreSQL默认用户(postgres)密码-p 5432:5432:端口映射(主机端口:容器端口)-d:后台运行容器tensorchord/pgvecto-rs:pg16-v0.2.1:镜像名称(PostgreSQL 16版本,pgvecto-rs v0.2.1)使用psql客户端连接容器内数据库:
bashpsql -h localhost -p 5432 -U postgres
默认凭据:
postgresPOSTGRES_PASSWORD值(示例中为mysecretpassword)连接后执行以下SQL启用pgvecto.rs扩展:
sqlDROP EXTENSION IF EXISTS vectors; CREATE EXTENSION vectors;
使用vector(n)数据类型定义n维向量列:
sql-- 创建包含向量列的表 CREATE TABLE items ( id bigserial PRIMARY KEY, embedding vector(3) NOT NULL -- 3维向量 );
注意:
vector(n)仅在1 ≤ n ≤ 65535时有效。PostgreSQL允许创建vector类型(无维度限制)或维度不匹配的向量值,但此类情况下无法为该列创建索引。
支持通过向量字面量或数组转换插入数据:
sql-- 方法1:使用向量字面量 INSERT INTO items (embedding) VALUES ('[1,2,3]'), ('[4,5,6]'); -- 方法2:通过数组转换 INSERT INTO items (embedding) VALUES (ARRAY[1, 2, 3]::real[]), (ARRAY[4, 5, 6]::real[]);
支持三种距离计算运算符:
<->:平方欧氏距离,定义为 Σ(x_i - y_i)²<#>:负点积,定义为 -Σx_i y_i<=>:余弦距离,定义为 1 - (Σx_i y_i) / (√Σx_i² √Σy_i²)示例:
sql-- 计算平方欧氏距离 SELECT '[1, 2, 3]'::vector <-> '[3, 2, 1]'::vector; -- 计算负点积 SELECT '[1, 2, 3]'::vector <#> '[3, 2, 1]'::vector; -- 计算余弦距离 SELECT '[1, 2, 3]'::vector <=> '[3, 2, 1]'::vector;
查询相似向量并按距离排序:
sql-- 查询与目标向量最相似的前5条记录 SELECT * FROM items ORDER BY embedding <-> '[3,2,1]' LIMIT 5;
使用vecf16类型(16位浮点数向量)减少内存占用:
sql-- 创建使用半精度浮点数向量的表 CREATE TABLE items_f16 ( id bigserial PRIMARY KEY, embedding vecf16(3) NOT NULL -- 3维16位浮点向量 );
完整使用指南请参考官方文档:
pgvecto.rs 官方文档
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。




探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务