FEATURED · 精选文章

pgvector Windows 编译安装:30 分钟一次通过

发布时间 / 2026/9/6 16:49:40
来源 / 创域科博编辑部
栏目 / 资讯中心
pgvector Windows 编译安装:30 分钟一次通过 pgvector Windows 编译安装30 分钟一次通过【免费下载链接】pgvectorOpen-source vector similarity search for Postgres项目地址: https://gitcode.com/GitHub_Trending/pg/pgvector上次在 Windows 上编译 pgvector你卡在哪一步——PGROOT、cl.exe还是 vector.dll 链不出来pgvector 是 PostgreSQL 的向量相似性搜索扩展向量与关系型数据同库存放支持精确和近似最近邻搜索。这篇指南带你走一遍 pgvector Windows 编译安装的完整路径四步走完装完即验。开工前核对清单先核对这四项没通过就补通过才动手——大部分报错都是前置条件缺位前置项验证命令不通过怎么办MSVC 编译器cl输出版本号VS 安装器补选使用 C 的桌面开发工作负载和对应 Windows SDKPG 开发文件dir %PGROOT%\include\server\postgres.h能列出文件重装 PostgreSQL 13安装时勾选 Development FilesPGROOT 环境变量echo %PGROOT%输出 PG 根目录在命令行里手动设置下节给命令路径别含中文管理员权限whoami显示 administrators以管理员身份重开x64 Native Tools Command Prompt for VS 2022两点提醒验证必须在同一个命令提示符窗口里做新开窗口环境变量就没了如果 PGROOT 还没设置先到下一节执行 set再回来核对本表。编译主流程准备拉取源码cd %TEMP% git clone --branch v0.8.6 https://gitcode.com/GitHub_Trending/pg/pgvector.git cd pgvector克隆到 %TEMP% 是为了绕开带空格和中文的路径nmake 对这种路径不友好。锁定 v0.8.6 分支和 vector.control 里的版本号一致编译产物与扩展脚本的版本天然对齐。没装 git 也行下载对应版本的压缩包解压效果一样。配置把 PGROOT 指到 PG 安装目录set PGROOTC:\Program Files\PostgreSQL\16 dir %PGROOT%\include\server\postgres.hMakefile.win 靠 PGROOT 统一找到 include/ 头文件和 lib/postgres.lib不设它 nmake 直接报PGROOT is not set一步都不会跑。第二行确认开发文件真实存在路径里的版本号换成你实际安装的版本。构建nmake 编译出 vector.dllnmake /F Makefile.win把 src/ 下的 18 个 C 文件逐个编成 .obj最后链成 vector.dll。Makefile 默认带了 /O2 /fp:fast用来开 MSVC 自动向量化想再压榨点性能可以在 Makefile.win 的 OPTFLAGS 里追加 /arch:AVX2。正常输出是每个 .c 文件一行cl.exe ...整机耗时一两分钟。中途报错的话九成是上一步环境的问题回去重核对清单。落库把产物放进 PG 目录nmake /F Makefile.win install一条命令把产物归位vector.dll 进 %PGROOT%\libvector.control 和各版本 .sql 进 %PGROOT%\share\extension。不用重启数据库PG 服务按需加载共享库。从旧版本升级也没额外动作升级脚本一并拷过去了ALTER EXTENSION vector UPDATE直接跑。30 秒验证打开 psql 连上目标库CREATE EXTENSION vector; CREATE TABLE test_vectors ( id bigserial PRIMARY KEY, embedding vector(3) ); INSERT INTO test_vectors (embedding) VALUES ([1.0, 2.0, 3.0]), ([4.0, 5.0, 6.0]), ([7.0, 8.0, 9.0]); SELECT id, embedding - [3.0, 2.0, 1.0] AS l2 FROM test_vectors ORDER BY l2 LIMIT 1;最后一条查询返回 id 1[3,2,1] 的 L2 最近邻是 [1,2,3]说明安装已生效。-是 L2、是余弦、#是内积都随扩展自带。高频卡点速查现象根因修复nmake: cl 不是内部或外部命令用的是普通 cmd不是 VS 工具命令提示符PATH 里没有 cl.exe重开x64 Native Tools Command Prompt或先在当前窗口call一下 vcvars64.batfatal error C1083: 找不到包含文件 postgres.hPGROOT 设了但指错地方版本号拼错或指向了没装 include 的实例重新set PGROOT...用dir %PGROOT%\include\server\postgres.h复核文件不在就重装 PG 勾上开发文件CREATE EXTENSION报could not open file ...vector--0.8.6.sqlpsql 连的实例不是你装包的那个 PG机器上两套 PG或端口被旧实例占着执行SELECT setting FROM pg_settings WHERE namedata_directory;与 %PGROOT%\data 比对不一致就连对端口其余报错基本逃不出这三类PATH 问题、路径问题、连错实例。装完之后pgvector 的价值在于向量检索与关系型查询同库运行-旁边照样写 JOIN用 WHERE 过滤业务字段。验证通过之后下一步就是建 HNSW 索引调m和ef_search在召回率和延迟之间做取舍。【免费下载链接】pgvectorOpen-source vector similarity search for Postgres项目地址: https://gitcode.com/GitHub_Trending/pg/pgvector创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻