pgvector Windows安装完整指南:6步编译验证一次跑通
2026/9/6 16:55:40 网站建设 项目流程

pgvector Windows安装完整指南:6步编译验证一次跑通

【免费下载链接】pgvectorOpen-source vector similarity search for Postgres项目地址: https://gitcode.com/GitHub_Trending/pg/pgvector

在 Windows 上装 pgvector,你大概率第一下就撞上process_begin: CreateProcess报错——默认 make 脚本是给 Linux 写的。pgvector 让你直接在 Postgres 里做向量相似性搜索,跟着下面的步骤走,一次装通并验证。

装前30秒自查

  • PostgreSQL 13+ 已安装(v0.8.6 支持 13+,见 vector.control)
  • Visual Studio 2019 或更高,勾选了“Desktop development with C++”工作负载
  • “x64 Native Tools Command Prompt for VS”能打开,窗口里敲nmake有版本号
  • 命令提示符以管理员身份运行
  • 知道 PostgreSQL 安装根目录,如C:\Program Files\PostgreSQL\16

⚠️ 缺哪项先补哪项,再往下走。

主路径:最快安装步骤

  1. 打开 x64 Native Tools Command Prompt for VS(管理员)。敲nmake,出现版本号即通过。

  2. 把 PGROOT 指向 PostgreSQL 根目录,头文件、库都从这里取:

    set "PGROOT=C:\Program Files\PostgreSQL\16"
  3. 克隆源码(v0.8.6 为当前发布版本):

    cd %TEMP% git clone --branch v0.8.6 https://gitcode.com/GitHub_Trending/pg/pgvector cd pgvector
  4. 编译

    nmake /F Makefile.win

    成功标志:当前目录生成vector.dll

  5. 安装

    nmake /F Makefile.win install

    成功标志:lib\下出现vector.dllshare\extension\下出现vector.controlvector--0.8.6.sql

进阶路径:源码/自定义安装

Linux/macOS 或要调整编译参数时,改用 Makefile:

cd /tmp git clone --branch v0.8.6 https://gitcode.com/GitHub_Trending/pg/pgvector cd pgvector make make install
  • 默认用-march=native针对本机 CPU 编译,要可移植产物就make OPTFLAGS=""
  • Windows 的 Makefile.win 已默认开启/O2 /fp:fast;CPU 支持 AVX2 时可在 OPTFLAGS 里加/arch:AVX2
  • Docker 环境直接make docker构建现成镜像,见 Dockerfile

装完怎么确认

依次跑下面三条,输出都符合预期才算装好:

psql -d postgres -c "CREATE EXTENSION vector;"

预期:CREATE EXTENSION

psql -d postgres -c "SELECT extversion FROM pg_extension WHERE extname='vector';"

预期:0.8.6

psql -d postgres -c "SELECT '[1,2,3]'::vector <-> '[3,1,2]'::vector;"

预期:距离值2.449489742783178

✅ 注意:CREATE EXTENSION要在每个业务库里各执行一次。

高频踩坑Q&A

Q:process_begin: CreateProcess报错?A:你在 Windows 上跑了 Linux 版 make 指令。构建只用nmake /F Makefile.win,别直接调 gmake。

Q:'nmake' is not recognized...A:C++ 工具链没装齐。在 Visual Studio 里补装“Desktop development with C++”,并确认用的是 Native Tools 提示符而不是普通 cmd。

Q:PGROOT is not setA:先set "PGROOT=..."再执行 nmake,路径要指向含binlib的那一层目录。

Q:报extension "vector" is not availableA:装错位置。确认vector.dlllib\vector.controlshare\extension\

Q:版本怎么升级?A:装完新版执行ALTER EXTENSION vector UPDATE TO '0.8.6';,先备份;历版升级脚本都在 sql/ 目录。

Q:建索引用什么?A:CREATE INDEX ON items USING hnsw (embedding vector_l2_ops);,大表上 hnsw 检索远快于全表扫描。

性能与安全建议

  • 建索引前SET maintenance_work_mem='2GB';——索引构建受内存限制,给小了慢甚至失败
  • SET max_parallel_maintenance_workers=4;——并行构建比单进程快数倍
  • 生产环境装/升级前先 dump 备份——扩展升级失败时可回滚
  • 大批量向量考虑用 halfvec 减半存储——精度损失对检索通常可接受
  • CREATE EXTENSION 只授予受信角色——它会在库里创建新类型与访问方法

临走前对照一遍:

  • Windows 走nmake /F Makefile.win,不混用 Linux 的 make
  • PGROOT 是编译前置,报错先查它
  • 装完跑三条验证,0.8.6出来才算数
  • 每个业务库都要单独 CREATE EXTENSION
  • 自定义编译目标改 OPTFLAGS 后重编

装完之后,先跑那三条验证把版本号确认出来,再开始写业务逻辑。

【免费下载链接】pgvectorOpen-source vector similarity search for Postgres项目地址: https://gitcode.com/GitHub_Trending/pg/pgvector

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询