一、pgvector 是什么?为什么需要它?
pgvector 是 PostgreSQL 的扩展插件,让你在数据库里直接存储和查询高维向量。典型场景:
- 用大模型(OpenAI、BERT)生成文本Embedding
- 图片相似搜索
- 推荐系统
核心功能:
sql
-- 存储 1536 维向量
CREATE TABLE documents (embedding vector(1536));
-- 相似度搜索(自动用索引加速)
SELECT * FROM documents ORDER BY embedding <=> '[0.1, 0.2, ...]' LIMIT 10;
二、前置条件检查
开始之前,确认你的环境:
| 项目 | 建议版本 | 检查命令 |
|---|---|---|
| PostgreSQL | 15 或 16(18 太新,兼容性差) | SELECT version(); |
| 端口 | 默认 5432(你的可能是 5433) | `netstat -ano |
| Visual Studio | 2022 社区版(免费) | 见下文 |
⚠️ 避坑提示 :如果你看到端口是 5433 ,说明安装时 5432 被占用了。本文所有配置文件请用 5433。
三、安装 Visual Studio 编译工具(精简版)
pgvector 是 C 语言写的,需要编译。但不用装完整 VS,3 个组件就够:
- 适用于 x64/x86 的 MSVC 生成工具(最新版)(核心编译器)
- Windows 11 SDK(系统头文件)
- 用于 Windows 的 C++ CMake 工具(构建工具)
安装步骤:
- 访问 Visual Studio 下载页
- 下载 Build Tools for Visual Studio 2022
- 安装时只勾选上述 3 项,其他全取消
- 总大小约 2GB(完整版 10GB+)
四、下载 pgvector 源码
访问 GitHub Releases 页面: github.com/pgvector/pg...
下载 最新稳定版 (比如 v0.8.0.zip),解压到短路径(建议 C:\code\pgvector-0.8.0)。
五、编译安装(关键步骤)
步骤 1:打开编译环境
在开始菜单搜索 "x64 Native Tools Command Prompt for VS 2022" ,右键 → 以管理员身份运行。
步骤 2:执行编译命令
依次输入以下命令(根据你的实际路径修改):
cmd
:: 1. 进入源码目录
cd C:\code\pgvector-0.8.0
:: 2. 设置 PostgreSQL 路径(注意版本号)
set "PGROOT=C:\Program Files\PostgreSQL\15"
:: 3. 编译(如果端口是 5433,这里不用改)
nmake /F Makefile.win
:: 4. 安装到 PostgreSQL
nmake /F Makefile.win install
成功标志:
- 没有
fatal error U1077 - 最后一行显示
Install file: "..."
六、验证安装
在 psql 或 DBeaver 里执行:
sql
-- 查看是否可用
SELECT * FROM pg_available_extensions WHERE name = 'vector';
-- 创建扩展(每个数据库只需一次)
CREATE EXTENSION vector;
-- 验证
SELECT 'hello world'::vector;
如果返回向量值,说明安装成功!
七、常见问题与解决方案
问题 1:extension "vector" is not available
原因:扩展没编译成功,或装到了错误的 PostgreSQL 版本。
解决:
cmd
-- 清理后重新编译
nmake /F Makefile.win clean
nmake /F Makefile.win
nmake /F Makefile.win install
问题 2:vacuum_delay_point 参数错误
原因:PostgreSQL 18(开发版)与 pgvector 不兼容。
解决 :降级到 PostgreSQL 15/16,或用预编译 DLL(见下文)。
问题 3:编译太麻烦
终极方案 :用 预编译 DLL(适合懒人)
- 下载
vector.dll和vector.control: - 复制到:
C:\Program Files\PostgreSQL\15\lib\vector.dllC:\Program Files\PostgreSQL\15\share\extension\vector.control
- 重启服务
八、完整流程图
sql
下载 pgvector → 安装 VS 精简组件 → 打开 x64 命令行 →
设置 PGROOT 路径 → nmake 编译 → nmake 安装 →
CREATE EXTENSION → 验证成功