如何在 Windows 上快速源码编译安装 pgvector 向量搜索扩展:完整指南

📅 发布时间:2026/9/5 15:19:42
如何在 Windows 上快速源码编译安装 pgvector 向量搜索扩展:完整指南
如何在 Windows 上快速源码编译安装 pgvector 向量搜索扩展完整指南【免费下载链接】pgvectorOpen-source vector similarity search for Postgres项目地址: https://gitcode.com/GitHub_Trending/pg/pgvector这篇指南带你走完 pgvector 在 Windows 上源码编译、安装进 PostgreSQL 并启用向量相似性搜索的完整流程先核对版本与工具链再一次性跑通 nmake 构建最后用几行 SQL 完成验证、调优与排错。环境核对无误的前提下整个过程可以一次做对。动手前核对环境三处最容易翻车的地方Windows 上的构建失败绝大多数能归因到下面三个位置建议动编译器之前先过一遍。对齐 PostgreSQL 版本pgvector 0.8.1 支持 PostgreSQL 13 及以上版本版本越高越稳妥。如果你机器上装过多个版本先选定一个并记住它的安装目录——下一步的 PGROOT 就指向这里选错版本是后续一切报错的源头之一。确认 Visual Studio 的 C 工具链完整编译依赖 Microsoft Visual Studio 2019 或更高版本中的桌面 C 生成工具。装完后在开始菜单找得到 “x64 Native Tools Command Prompt for VS” 才算齐活找不到就说明 C 组件没装全。预先认识三种典型失败现象make / gmake 不被识别Linux 与 macOS 习惯里的make、make install在 Windows 环境里跑不起来本项目的 Windows 构建入口是nmake /F Makefile.win。提示缺少 pgxs.mk它属于 PostgreSQL 的构建系统找不到通常意味着 PGROOT 没设置或没指对安装目录。复制文件时拒绝访问安装环节要写入 PostgreSQL 的 lib 与 share 目录非管理员的终端会被挡下来。编译流程一次性跑通的顺序以管理员身份打开 x64 Native Tools Command Prompt右键以管理员身份运行 “x64 Native Tools Command Prompt for VS”。这里要的不是普通 PowerShell 或 cmd而是这个预配置好的原生编译环境。判断标准终端标题栏带 “x64 Native Tools” 字样且窗口是以管理员身份打开的。设置 PGROOT 指向 PostgreSQL 安装目录set PGROOTC:\Program Files\PostgreSQL\18把版本号换成你实际安装的版本。这个变量是 Makefile.win 的硬性要求——不设置时构建脚本会直接报PGROOT is not set。设置后可以在同一窗口里执行echo %PGROOT%回显确认输出的路径应真实存在。克隆源码并进入项目目录cd %TEMP% git clone --branch v0.8.1 https://gitcode.com/GitHub_Trending/pg/pgvector.git cd pgvector固定在 v0.8.1 标签上拉取保证代码与本指南描述的行为一致。用 nmake 编译并安装nmake /F Makefile.win nmake /F Makefile.win install判断标准第一条命令结束后目录下应出现vector.dll及一批.obj文件第二条命令结束后%PGROOT%\lib下多了vector.dll%PGROOT%\share\extension下多了 vector 的控制文件与 SQL 脚本。任一步失败对照文末的排错速查表处理。构建之后验证、调优与排错速查用最小 SQL 验证扩展可用以数据库超级用户身份进入 psql依次执行CREATE EXTENSION vector; SELECT NULL::vector; CREATE TABLE test_items (id bigserial PRIMARY KEY, embedding vector(3)); INSERT INTO test_items (embedding) VALUES ([1,2,3]), ([4,5,6]); SELECT * FROM test_items ORDER BY embedding - [3,1,2] LIMIT 5;第一条必须返回CREATE EXTENSION且无报错报找不到扩展则回到安装步骤检查文件是否落盘。类型测试应返回一个 NULL 的 vector 值而不是类型错误。-算子是 L2 距离结果应是[1,2,3]排在[4,5,6]前面——顺序正确即代表扩展工作正常。该扩展需要在每个想使用它的数据库里单独创建一次。内存参数与 HNSW 索引数据量上来后配合调整 PostgreSQL 内存参数先用SHOW shared_buffers;、SHOW work_mem;查看现状再用SET maintenance_work_mem 2GB;之类的语句加速索引构建具体数值以机器实际内存为准。查询侧推荐 HNSW 索引搭配vector_l2_ops算子类CREATE INDEX ON test_items USING hnsw (embedding vector_l2_ops);其余算子类与 IVFFLAT 的取舍以 README.md 的说明和官方文档为准。排错速查表现象原因与处理PGROOT is not set漏了set PGROOT...一步补上后重新编译Cannot open include file: postgres.hPGROOT 未设置或指错目录修正后重编error C2196: case value 4 already used没用 x64 Native Tools 终端换终端后执行nmake /F Makefile.win clean再重新编译Access is denied非管理员权限运行换管理员终端重跑安装命令make 命令不识别Windows 上请使用nmake /F Makefile.win而不是make以上判断依据来自仓库 README 的 Windows 安装说明一节可自行对照 README.md 核对。验证通过后就可以接入真实数据了先灌入一小批向量做近邻查询确认索引被命中且耗时符合预期再逐步放量。下一步建议按 README.md 中 Getting Started 之后的索引与检索章节继续深入。【免费下载链接】pgvectorOpen-source vector similarity search for Postgres项目地址: https://gitcode.com/GitHub_Trending/pg/pgvector创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考