10分钟在Windows装好pgvector:从零到第一条向量查询的完整指南

发布时间:2026/9/6 21:12:25
10分钟在Windows装好pgvector:从零到第一条向量查询的完整指南 10分钟在Windows装好pgvector从零到第一条向量查询的完整指南【免费下载链接】pgvectorOpen-source vector similarity search for Postgres项目地址: https://gitcode.com/GitHub_Trending/pg/pgvectorpgvector 是 PostgreSQL 的开源向量相似性搜索扩展让你的数据库能直接存向量、按距离排序检索。这篇文章带你走完 Windows 上的 pgvector 安装全流程装前自检、选路线、动手装、查错最后建一张表跑出第一条相似度查询。跟着顺序做读完即可用。 环境自检清单开始之前确认这4件事动手前先花两分钟确认环境后面 90% 的报错都出在这一步。项目要求说明操作系统Windows 10/11x64编译命令默认按 64 位工具链走PostgreSQL13 及以上版本pgvector 0.8.6 支持 PG 1317.0~17.2 有已知链接问题建议 17.3 或 16.xVisual Studio2019 或 2022安装时勾选使用 C 的桌面开发工作负载提供 MSVC 与 nmakeGit for Windows任意稳定版仅源码路线需要用于克隆仓库下载来源PostgreSQL 用 EDB 官网的 Windows 安装包Visual Studio 装 Community 版即可Git 用官网安装包。装 PG 时保持默认路径C:\Program Files\PostgreSQL\版本\后面编译要引用它。⚖️ 两条安装路线10秒选一条路线A预编译文件路线B源码编译适合谁不想碰编译、只想要最新版需要特定分支/最新提交耗时约1分钟约5~10分钟依赖只有 PostgreSQL还需 Visual Studio Git步骤复制3类文件设环境变量 两条 nmake 命令判断标准很简单没有特殊编译需求就选路线 A仓库发布页没有你想要的版本才选路线 B。两条路线的产物完全一样装完后用法没有任何区别。 路线A预编译三步装法适合大多数读者。从仓库发布页下载 Windows 版 pgvector 文件后只需复制文件到 PostgreSQL 的三个位置。第一步放 DLL。把vector.dll复制到 PostgreSQL 的 lib 目录C:\Program Files\PostgreSQL\16\lib\第二步放扩展描述文件。把vector.control复制到 share\extension 目录C:\Program Files\PostgreSQL\16\share\extension\第三步放 SQL 脚本。把vector--*.sql全部 SQL 文件复制到同一个目录C:\Program Files\PostgreSQL\16\share\extension\说明vector.control声明扩展元信息当前版本 0.8.6vector--x.y.z.sql是各版本的安装脚本PG 按版本号自动选用。若你的 PG 装在D:\等其他盘符把路径里的C:\Program Files替换掉即可。复制涉及 Program Files复制器提示权限时点继续或先右键以管理员身份运行资源管理器。 路线B源码编译关键命令全程在x64 Native Tools Command Prompt for VS中执行并以管理员身份打开它。这一条命令提示符决定了架构和工具链选错是 Windows 编译报错的头号原因。先克隆仓库并设置 PGROOT 指向你的 PostgreSQL 安装目录set PGROOTC:\Program Files\PostgreSQL\16 git clone --branch v0.8.6 https://gitcode.com/GitHub_Trending/pg/pgvector cd pgvector然后编译并安装nmake 会把vector.dll、vector.control和 SQL 脚本自动分发到 PG 的lib\与share\extension\下nmake /F Makefile.win nmake /F Makefile.win install编译产物是vector.dll与路线 A 的预编译文件等价后续验证步骤通用。⚠️ 报错速查表现象→原因→处理1. 现象Cannot open include file: postgres.h: No such file or directory原因PGROOT指向的目录不对找不到 PG 头文件。 处理核对PGROOT是否精确指向C:\Program Files\PostgreSQL\16这一层不能再多一层bin或少一层重新 set 后再编译。2. 现象error C2196: case value 4 already used原因架构不匹配——你用的不是 x64 工具链比如误用了 x86 提示符或 VS 普通终端。 处理关闭当前终端重新打开x64 Native Tools Command Prompt for VS先nmake /F Makefile.win clean清理残留再重新执行编译两条命令。3. 现象Access is denied或安装阶段写文件失败原因没以管理员身份运行无法写入 Program Files。 处理右键x64 Native Tools Command Prompt for VS→以管理员身份运行重跑安装步骤。补充一条版本类问题在 PG 17.0~17.2 上链接时报unresolved external symbol float_to_shortest_decimal_bufn这是 PG 该几个小版本的已知问题升级到 17.3 即可。✅ 验证与第一次向量查询重启 PostgreSQL 服务或确保服务已运行用 psql 连上目标库执行下面的 SQL确认扩展能正常创建且向量类型可用CREATE EXTENSION vector; SELECT [1,2,3]::vector;注意CREATE EXTENSION要在每个需要用到向量的数据库里各执行一次。接着建表、写数据、查最近邻完整跑通一遍CREATE TABLE items ( id bigserial PRIMARY KEY, embedding vector(3) ); INSERT INTO items (embedding) VALUES ([1,2,3]), ([4,5,6]), ([7,8,9]); SELECT * FROM items ORDER BY embedding - [3,1,2] LIMIT 5;-是欧氏距离L2算子查询[3,1,2]时[1,2,3]应排在第一位。距离越小排越前——如果结果顺序符合这个直觉你的 pgvector 就装好了。 下一步索引、场景与延伸阅读加索引再查询。数据量上万后全表扫描会明显变慢。按场景二选一频繁更新用 HNSW数据基本静态且内存紧张用 IVFFlatCREATE INDEX ON items USING hnsw (embedding vector_l2_ops);典型场景。语义搜索文本 embedding 检索、商品/内容推荐、以图搜图、异常点检测——共同点都是把向量放在关系数据旁边用一条 SQL 连 JOIN 带相似度。更多距离度量。除 L2 外还支持内积#、余弦、L1选型参考 README.md 的 Getting Started 与距离函数章节。类型扩展。除稠密vector外还有半精度halfvec、稀疏sparsevec、二进制bit类型维度很高或很稀疏时能省内存和查询时间细节见 src/ 下的实现源码。装好只是开始先用小数据量把 HNSW 索引建起来体验一次加速再决定参数m、ef_search怎么调。【免费下载链接】pgvectorOpen-source vector similarity search for Postgres项目地址: https://gitcode.com/GitHub_Trending/pg/pgvector创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考