
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
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 官方文档
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务