15 分钟跑通 pgvector:Windows 下从源码到首次向量查询的完整安装实操
2026/9/6 21:15:44 网站建设 项目流程

15 分钟跑通 pgvector:Windows 下从源码到首次向量查询的完整安装实操

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

pgvector 是 Postgres 的开源向量相似度搜索扩展,装上之后 embedding 向量直接存在普通表里,建个 HNSW 索引,一条 SQL 就能跑相似性查询,不用另外维护一套向量数据库。本文覆盖 pgvector 在 Windows 10/11 上的完整流程:前置依赖核对、源码编译、装完验证、高频报错处理,从敲第一条命令到返回版本号,15 分钟内跑通。

开工前:pgvector Windows 安装需要核对的 4 样东西

缺任何一样,后面都会卡在编译或安装环节:

组件要求缺了会卡在哪
PostgreSQL14+(推荐 16,17 请用 17.3+)17.0–17.2 有个已知 bug,链接阶段直接报错
Visual Studio 2019+安装时勾选"C++ 桌面开发"工作负载没有 MSVC 工具链,nmake 直接失败
Windows SDK 10.0.19041+随 VS 一起装,别漏找不到 crtdefs.h 等系统头文件
Git任意较新版本拉不下来源码

四步完成 pgvector 安装:从拉源码到首次查询

第 1 步:拉源码。源码只有几十个文件,放临时目录就行,装完不用管它。

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

预期看到 pgvector 目录,里面有 Makefile.win、src/ 和 sql/ 三个关键项。

第 2 步:把 PGROOT 指向 PostgreSQL 安装目录。Makefile.win 靠这个变量定位头文件、库文件和安装目标,没设的话 nmake 当场报错。同一会话里顺手把 bin 加进 PATH:

set PGROOT=C:\Program Files\PostgreSQL\16 set PATH=%PGROOT%\bin;%PATH%

预期没有任何报错输出,后续命令可以直接调用 PG 的可执行文件。

第 3 步:编译并安装。先打开 VS 的 x64 Native Tools Command Prompt——只有这个 shell 带全 SDK 环境,换别的终端必挂。然后敲两行:

nmake /F Makefile.win nmake /F Makefile.win install

第一条编出 vector.dll,第二条把 DLL、.control 和全部 .sql 文件拷进 PGROOT 对应目录。第二条跑完,编译安装就闭环了。

第 4 步:启用扩展验证。装没装好,连上数据库跑两句才算数:

CREATE EXTENSION vector; SELECT vector_version();

预期第二条返回 0.8.6 版本号。想多跑一轮完整回归,命令行再补一行,test/sql 下的全部用例——类型转换、索引构建、距离函数——会一遍过完:

nmake /F Makefile.win installcheck

预期每一行都是 ok,最后 all tests pass。

pgvector 编译报错对照表:终端变红先查这里 ⚠️

九成翻车都在这四种里,按现象对号入座:

现象原因解法
打不开postgres.hPGROOT 没设或指错目录当前会话重新 set,别指望新开的终端
error C2196: case value '4' already used没在 VS 原生环境里编译换 x64 Native Tools Command Prompt,先nmake /F Makefile.win clean再重编
unresolved external symbol float_to_shortest_decimal_bufnPostgreSQL 17.0–17.2 已知问题把 PG 升到 17.3 及以上
Access is denied安装目录没有写权限用管理员身份重跑安装那一步

pgvector 装完之后:类型、算子和调优参数速查

四个向量类型,按需选:

类型上限适用
vector2000 维默认选择
halfvec4000 维省一半内存
bit64000 维二值量化
sparsevec1000 个非零元素高维稀疏场景

四种距离算子都能建索引加速:<->L2 欧氏、<#>内积取负、<=>余弦、<+>L1。索引就两类,HNSW 查询快、IVFFlat 构建快,多数场景选 HNSW。调召回时 HNSW 调ef_search、IVFFlat 调probes,调高换精度、调低换速度;建索引记得数据灌完再建,大表顺手调大maintenance_work_mem。更多细节看仓库自带的 README.md,HNSW 核心实现在 src/ 目录。

一句话收尾:pgvector 在 Windows 上没有玄学,核对依赖、四步装完、两句验证,向量搜索就在你手边。下一步,复制这三句,把第一条查询跑起来:

CREATE TABLE items (id bigserial PRIMARY KEY, embedding vector(3)); CREATE INDEX ON items USING hnsw (embedding vector_l2_ops); SELECT * FROM items ORDER BY embedding <-> '[1,2,3]' LIMIT 5;

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

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

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

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

立即咨询