PostgreSQL Field Guide

PostgreSQL 安装 pgvector

在 Docker、Ubuntu 和云 PostgreSQL 中安装、启用并验证 pgvector 扩展

pgvector 是独立扩展,不是 PostgreSQL 核心内置类型。安装软件包或使用包含扩展的镜像后,仍需在每个目标 database 执行 CREATE EXTENSION vector

Docker 最小环境

pgvector 上游提供基于官方 Postgres 镜像的版本化镜像。以下示例固定 PostgreSQL 18 和 pgvector 0.8.2:

docker volume create pgvector18-data

docker run --name pgvector18 \
  --env POSTGRES_PASSWORD=local-only-change-me \
  --publish 5432:5432 \
  --volume pgvector18-data:/var/lib/postgresql/data \
  --detach pgvector/pgvector:0.8.2-pg18-trixie

docker exec -it pgvector18 \
  psql -U postgres -d postgres -c "CREATE EXTENSION vector;"

密码仅用于隔离的本机演示,不可进入生产配置。已有同名容器或 5432 端口占用时应选择明确的新名称/端口,不要删除未知实例。

Ubuntu / Debian 包

软件包快照证据 · PkgSeek

发行版仓库中的 pgvector

已收录
发行版版本索引版本仓库关联公告
AlmaLinux100.6.2-6.el10_0official / AppStream
AlmaLinux90.8.1-1.module_el9.8.0+234+5456f35dofficial / AppStream
Arch Linuxrolling0.8.6-1official / extra
CentOS Stream100.6.2-8.el10official / AppStream
CentOS Stream90.8.1-1.module_el9+1300+1c4aa8dfofficial / AppStream
Fedora420.6.2-4.fc42official / everything
Fedora430.8.0-1.fc43official / everything
Fedora440.8.0-2.fc44official / everything
Oracle Linux100.6.2-6.el10_0official / appstream
Oracle Linux90.6.2-2.module+el9.8.0+90925+e22a792eofficial / appstream
Red Hat Enterprise Linux10.20.6.2-6.el10_0official / AppStream
Red Hat Enterprise Linux9.80.6.2-2.module+el9.8.0+24096+5a959ed6official / AppStream
Rocky Linux100.6.2-6.el10_0official / AppStream
Rocky Linux90.6.2-2.module+el9.8.0+40212+d6f50005official / AppStream
快照核对时间: 2026年8月2日 15:47 UTC. 发行版 revision 与回溯补丁属于完整版本身份;关联公告为 0 也不是永久安全保证。打开软件包查询

同一个扩展在不同发行版中可能使用 pgvectorpostgresql18-pgvector 或与 server major 绑定的其他名称。上表只显示准确命名为 pgvector 的坐标;不能据此推断所有发行版的版本化包是否存在。

软件包快照证据 · PkgSeek

PGDG:postgresql-18-pgvector

没有准确索引坐标

PkgSeek 没有为这个坐标返回准确匹配。这只表示“当前快照未收录”,不等于“软件包不存在”;执行操作前仍需核对上游仓库。

快照核对时间: 2026年8月2日 15:47 UTC. 发行版 revision 与回溯补丁属于完整版本身份;关联公告为 0 也不是永久安全保证。打开软件包查询

若上方没有准确坐标,仍需以目标 PGDG 仓库元数据复核,不能根据通用 pgvector 包推断 Ubuntu / Debian 的版本化包名。

配置 PostgreSQL 官方 Apt 仓库后,扩展包与 server major 绑定:

sudo apt install postgresql-18-pgvector
sudo -u postgres psql -d app -c "CREATE EXTENSION vector;"

安装到操作系统不代表所有 database 已启用。验证实际版本:

SELECT extname, extversion
FROM pg_extension
WHERE extname = 'vector';

升级扩展前阅读 release notes,并在目标 database 执行经过验证的:

ALTER EXTENSION vector UPDATE;

最小查询验证

CREATE TABLE vector_demo (
  id bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
  embedding vector(3) NOT NULL
);

INSERT INTO vector_demo (embedding)
VALUES ('[1,2,3]'), ('[4,5,6]'), ('[1,1,1]');

SELECT id, embedding <-> '[1,2,2]'::vector AS l2_distance
FROM vector_demo
ORDER BY embedding <-> '[1,2,2]'::vector
LIMIT 2;

没有近似索引时这是 exact search。数据量和真实过滤条件需要时,再依据pgvector 生产最佳实践评估 HNSW 或 IVFFlat。

云 PostgreSQL

云服务通常限制操作系统访问和扩展清单。上线前确认:

  • engine major 与 vector 扩展的具体版本;
  • 谁有权限执行 CREATE EXTENSION / ALTER EXTENSION
  • HNSW、IVFFlat 和 iterative scans 是否由该版本支持;
  • 扩展升级是否跟随引擎升级、需要维护窗口或手工执行;
  • index build 的磁盘、内存、WAL 和副本延迟限制。

不要混合不同 embedding

模型、维度、归一化或距离语义变化时,使用新列或新表重建并评测。数据库允许写入同维度向量,不代表它们在语义上可比较。

安装方式和当前发行版以 pgvector 官方仓库为准。

Last updated on

On this page