ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

3 条 nmake 命令在 Windows 装好 pgvector:PostgreSQL 向量搜索扩展从编译到验证

2026/9/6 16:33:16 拓冰建站 浏览量
3 条 nmake 命令在 Windows 装好 pgvector:PostgreSQL 向量搜索扩展从编译到验证 3 条 nmake 命令在 Windows 装好 pgvectorPostgreSQL 向量搜索扩展从编译到验证【免费下载链接】pgvectorOpen-source vector similarity search for Postgres项目地址: https://gitcode.com/GitHub_Trending/pg/pgvector你已有一套在跑的 PostgreSQL现在想不额外引入向量数据库就直接做语义搜索pgvector 就是为此设计的它把向量类型、距离函数和近似索引全部放进 Postgres 内部一次 SQL 即可完成向量搜索。在 Windows 上完成编译安装并不复杂只要编译器与开发文件就位核心步骤只有 3 条命令。pgvector 是什么、能干什么向量类型齐全vector单精度最高 2,000 维、halfvec半精度、bit二进制、sparsevec稀疏可按场景选存储格式距离度量完整L2 距离-、内积#、余弦距离、L1 距离二进制向量还有汉明与 Jaccard 距离精确 近似两套搜索小表可全表扫描做精确最近邻大表建 HNSW 或 IVFFlat 索引做高速近似搜索原生融入 SQL向量列和普通列一样参与 JOIN、过滤、事务任何带 Postgres 客户端的语言都能直接调用典型适用场景语义检索、RAG 问答、相似内容推荐、以图搜图等动手前的 Windows 准备清单工具作用验证方法x64 Native Tools Command Prompt for VS 2022提供 MSVC 编译器cl.exe与nmake运行cl能看到编译器版本号PostgreSQL 13含 Development Files提供头文件include\server与链接库postgres.libdir %PGROOT%\include\server\postgres.h能列出该文件PGROOT 环境变量被 Makefile.win 用来定位 Postgres 的 bin、lib、share 目录echo %PGROOT%打印出安装路径准备步骤按顺序执行安装 Visual Studio 2022工作负载勾选使用 C 的桌面开发安装 PostgreSQL组件里务必勾选 Development Files从开始菜单启动x64 Native Tools Command Prompt for VS 2022安装阶段建议以管理员身份运行拉取源码并进入目录cd %TEMP% git clone https://gitcode.com/GitHub_Trending/pg/pgvector cd pgvector从零到装好只需 3 条命令set PGROOTC:\Program Files\PostgreSQL\18用途告诉 nmake 你的 PostgreSQL 装在哪里。 版本号按你实际安装的目录修改可用echo %PGROOT%确认。 预期输出无输出命令静默完成。nmake /F Makefile.win用途编译 src 下全部 C 源码产出扩展动态库。 预期输出过程打印若干编译日志当前目录生成vector.dll。nmake /F Makefile.win install用途把vector.dll、vector.control及 SQL 脚本复制到 PostgreSQL 的 lib 与share\extension目录。 预期输出一串copy成功日志%PGROOT%\lib下出现vector.dll。用 2 段 SQL 验证向量搜索是否生效第一段建扩展、建表并插入数据每个要用的数据库都需执行一次建扩展CREATE EXTENSION vector; CREATE TABLE items (id bigserial PRIMARY KEY, embedding vector(3)); INSERT INTO items (embedding) VALUES ([1,2,3]), ([4,5,6]), ([7,8,9]);第二段按 L2 距离排序查询最近邻SELECT id, embedding - [3,1,2] AS distance FROM items ORDER BY distance LIMIT 1;返回的是距离值最小即与查询向量[3,1,2]最接近的那一行说明向量搜索已生效换成即得到余弦距离排序。卡住了Windows 编译常见故障速查报错现象最可能原因一行处理办法PGROOT is not set新终端里 PGROOT 丢失或未设置重新执行set PGROOT...再编译Cannot open include file: postgres.hPGROOT 指错或 Postgres 没装 Development Filesdir %PGROOT%\include\server\postgres.h核对路径cl 不是内部或外部命令没有从 VS 命令提示符启动改用 x64 Native Tools Command Prompt 重进目录error C2196: case value 4 already used用了 x86 命令行导致架构不匹配换 x64 提示符先nmake /F Makefile.win clean再编译unresolved external symbol float_to_shortest_decimal_bufnPostgres 17.0–17.2 与源码链接库不兼容升级 PostgreSQL 到 17.3 及以上版本Access is denied无权限写入 Program Files 目录以管理员身份重开命令提示符执行 install装好之后你能做什么能力一为向量列建 HNSW 或 IVFFlat 索引百万级以上数据也能走索引快速返回 Top-K并可与 WHERE 条件混写做混合查询能力二用halfvec半精度或二进制向量压缩内存向量库越大收益越明显能力三向量检索结果直接参与 SQL 的 JOIN、聚合与事务不必在两套系统间搬数据编译优化示例Makefile.win 默认已带/O2 /fp:fast开启自动向量化若 CPU 支持 AVX2可在那一行的OPTFLAGS中追加/arch:AVX2提升向量运算吞吐。下一步建议跑一遍仓库自带回归测试nmake /F Makefile.win installcheck确认你的环境行为一致阅读 README.md 的 HNSW/IVFFlat 章节学会m、ef_construction、lists等参数调优【免费下载链接】pgvectorOpen-source vector similarity search for Postgres项目地址: https://gitcode.com/GitHub_Trending/pg/pgvector创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考