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
| 发行版 | 版本 | 索引版本 | 仓库 | 关联公告 |
|---|---|---|---|---|
| AlmaLinux | 10 | 0.6.2-6.el10_0 | official / AppStream | — |
| AlmaLinux | 9 | 0.8.1-1.module_el9.8.0+234+5456f35d | official / AppStream | — |
| Arch Linux | rolling | 0.8.6-1 | official / extra | — |
| CentOS Stream | 10 | 0.6.2-8.el10 | official / AppStream | — |
| CentOS Stream | 9 | 0.8.1-1.module_el9+1300+1c4aa8df | official / AppStream | — |
| Fedora | 42 | 0.6.2-4.fc42 | official / everything | — |
| Fedora | 43 | 0.8.0-1.fc43 | official / everything | — |
| Fedora | 44 | 0.8.0-2.fc44 | official / everything | — |
| Oracle Linux | 10 | 0.6.2-6.el10_0 | official / appstream | — |
| Oracle Linux | 9 | 0.6.2-2.module+el9.8.0+90925+e22a792e | official / appstream | — |
| Red Hat Enterprise Linux | 10.2 | 0.6.2-6.el10_0 | official / AppStream | — |
| Red Hat Enterprise Linux | 9.8 | 0.6.2-2.module+el9.8.0+24096+5a959ed6 | official / AppStream | — |
| Rocky Linux | 10 | 0.6.2-6.el10_0 | official / AppStream | — |
| Rocky Linux | 9 | 0.6.2-2.module+el9.8.0+40212+d6f50005 | official / AppStream | — |
同一个扩展在不同发行版中可能使用 pgvector、postgresql18-pgvector 或与 server major 绑定的其他名称。上表只显示准确命名为 pgvector 的坐标;不能据此推断所有发行版的版本化包是否存在。
软件包快照证据 · PkgSeek
PGDG:postgresql-18-pgvector
PkgSeek 没有为这个坐标返回准确匹配。这只表示“当前快照未收录”,不等于“软件包不存在”;执行操作前仍需核对上游仓库。
若上方没有准确坐标,仍需以目标 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