pgvector 是 PostgreSQL 的扩展,专门用于向量数据的存储、索引和相似性查询。它能让 PostgreSQL 直接处理向量类型数据(如机器学习模型输出的嵌入向量),支持高效的相似性检索,适合需要在数据库内完成向量计算的场景。
vector 类型,可存储固定维度的浮点数组(默认最大 *** 维,支持调整)。<->)、余弦相似度(<=>)、曼哈顿距离(<#>),直接通过 SQL 函数调用。1. 系统依赖安装
根据操作系统选择对应方式:
Ubuntu/Debian:
bash# 安装 PostgreSQL 开发包(版本需与当前 PostgreSQL 一致,如 14) sudo apt-get install postgresql-server-dev-14 # 从源码编译安装 pgvector(或用 pip install pgvector) git clone [***] && cd pgvector && make && sudo make install
macOS:
bashbrew install pgvector
Windows:
推荐用 Docker 镜像(pgvector/pgvector:14),或手动编译(需先安装 PostgreSQL 开发环境)。
2. 启用扩展
在目标数据库中执行 SQL:
sqlCREATE EXTENSION vector; -- 安装完成后,即可使用 vector 类型
1. 创建含向量列的表
先定义向量列,需指定维度(如 3 维、768 维,与模型输出的嵌入维度一致):
sql-- 示例:存储文本嵌入向量(假设用 BERT 生成的 768 维向量) CREATE TABLE documents ( id SERIAL PRIMARY KEY, content TEXT, embedding vector(768) -- 向量列,指定 768 维 );
2. 插入向量数据
直接插入向量值(格式为 [x1, x2, ..., xn]):
sql-- 插入文本嵌入向量(实际场景中通常通过应用程序生成,如 Python 的 psycopg2 插入) INSERT INTO documents (content, embedding) VALUES (' PostgreSQL 教程', '[0.12, 0.34, ..., 0.89]'), -- 省略中间维度值 ('向量数据库对比', '[0.23, 0.45, ..., 0.78]');
3. 相似性查询
通过距离函数筛选相似向量,结果按距离排序(值越小越相似):
sql-- 例:查找与目标向量最相似的 Top 10 文档(余弦相似度 <=>) SELECT id, content, embedding <=> '[0.18, 0.31, ..., 0.92]' AS similarity FROM documents ORDER BY similarity -- 按相似度升序(值越小越相似) LIMIT 10; -- 欧氏距离查询(适用于高维稀疏向量) SELECT id, embedding <-> '[0.18, 0.31, ..., 0.92]' AS distance FROM documents ORDER BY distance LIMIT 10;
4. 索引优化(大规模数据)
当向量数据量超过 10 万级时,建议创建索引加速查询。pgvector 支持多种索引类型,根据数据规模选择:
IVFFlat 索引(中等规模,百万级数据):
sql-- 创建余弦相似度索引(指定算子 vector_cosine_ops) CREATE INDEX ON documents USING ivfflat (embedding vector_cosine_ops) WITH (lists = 100); -- lists 数量建议设为数据量平方根(如 100 万数据设 1000)
HNSW 索引(大规模,亿级数据,查询更快但内存占用高):
sql-- 创建欧氏距离索引(算子 vector_l2_ops) CREATE INDEX ON documents USING hnsw (embedding vector_l2_ops) WITH (m = 16, ef_construction = 64); -- m=16(邻居数)、ef_construction=64(构建时候选集)
VECTOR_MAX_DIM 宏。以下是 pgvector/pgvector 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。






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