news 2026/8/24 2:09:16

pgvector Windows 安装实践:从 nmake 报错到 10 分钟跑通最近邻查询

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
pgvector Windows 安装实践:从 nmake 报错到 10 分钟跑通最近邻查询

pgvector Windows 安装实践:从 nmake 报错到 10 分钟跑通最近邻查询

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

本文讲清在 Windows 上编译安装 pgvector 向量扩展的完整流程:装前自检、设置 PGROOT、nmake 编译,直到跑通第一条最近邻查询。没在 Windows 上做过编译也能跟着做。

它适合解决什么问题:pgvector 的典型场景

先说清楚 pgvector 值不值得装。这个扩展给 PostgreSQL 增加了向量数据类型和最近邻检索能力,常见用法分两类:

  • 智能推荐系统:把用户画像向量存进数据库,用向量列计算物品之间的相似度,实时推荐引擎直接用 SQL 查询候选项,不必再维护一套独立的向量检索服务。
  • 语义搜索:把文本的 embedding 和原文一起入库:
INSERT INTO documents (content, embedding) VALUES ('技术文档内容', '[0.1,0.2,0.3]');

之后就能按向量找“意思相近”的文档。

如果你的业务要存向量、找最近邻,这个扩展值得装;只做普通关系型查询可以跳过。

装前自检:版本与组件清单

这一节用一张表花 1 分钟确认机器是否就绪。

检查项要求
PostgreSQL13 及以上,13 到 18 均支持(推荐 18)
Visual Studio2019 或更新版本,且已装 C++ 编译支持
Git命令行中 git 命令可用

当前 pgvector 0.8.1 支持的范围是 PostgreSQL 13–18,数据库版本落在区间内即可。

⚠️ Visual Studio 的 C++ 工作负载是安装器里勾选的组件,装系统时漏掉是最常见的坑,装完可以回安装器补装。

安装全流程:管理员命令行 → PGROOT → 克隆源码 → nmake

这里按操作时间线走一遍编译流程,每步都说明为什么这么做。

  1. 打开正确的环境。在开始菜单里找到 "x64 Native Tools Command Prompt for VS",右键以管理员身份运行。这个窗口预配置了 MSVC 工具链和路径,大量 nmake 报错都是因为用了普通 cmd。
  2. 告诉构建系统 PostgreSQL 装在哪
set "PGROOT=C:\Program Files\PostgreSQL\18"

如果你的大版本是 16,把路径里的版本号换掉即可。

  1. 获取源码,克隆时锁分支号,保证编译版本和安装版本一致:
cd %TEMP% git clone --branch v0.8.1 https://gitcode.com/GitHub_Trending/pg/pgvector cd pgvector
  1. 编译并安装
nmake /F Makefile.win nmake /F Makefile.win install

第一条把扩展的动态库和脚本编译出来,第二条把它们放进 PostgreSQL 的 lib 与 share 目录。第二条命令无报错,安装就完成了。

装完 10 分钟验证:一条最小链路跑通 ✅

确认装没装成功,最快的方式是跑通一条完整链路:建扩展 → 建表 → 写入 → 查询。

CREATE EXTENSION 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;

<->是 L2 距离算子,结果按距离从小到大排列。只要查询返回行,且离查询向量最近的那行排第一,说明扩展可用。如果CREATE EXTENSION vector报错,回到上一步确认 nmake install 是否成功执行。

索引怎么选:HNSW 与 IVFFlat

下面两种索引都用于加速最近邻查询,按数据规模和内存预算来选。

  • HNSW:查询性能和召回率都更好,多数场景的默认选择:
CREATE INDEX ON items USING hnsw (embedding vector_l2_ops);
  • IVFFlat:内存占用更省,适合需要压低内存预算的场景。lists决定聚类数量,100 是常用的起步值:
CREATE INDEX ON items USING ivfflat (embedding vector_l2_ops) WITH (lists = 100);

精确或大规模扫描时,可以开部分并行提升单次查询速度:

SET max_parallel_workers_per_gather = 4;

卡住了?按这三类排障 ⚠️

排障按三类高频症状走,Windows 上的问题大多能归到这三类里。

编译报错

最典型的是找不到 postgres.h。先查 PGROOT 是否指向正确的 PostgreSQL 根目录(其下应有 include 子目录);再查 Visual Studio 是否装了 C++ 生成工具。

权限问题

nmake 写文件失败、install 报拒绝访问时,确认处于管理员命令行环境,并且对 PostgreSQL 下的目标目录有写权限。

查询慢

先用 EXPLAIN 看执行细节,确认有没有走索引:

EXPLAIN (ANALYZE, BUFFERS) SELECT * FROM items ORDER BY embedding <-> '[3,1,2]' LIMIT 5;

如果走的是顺序扫描,说明索引没建或算子类不匹配;索引已命中但仍慢,可以先调大构建时的内存:

SET maintenance_work_mem = '2GB';

然后重建索引再测。

收尾:维护、升级与下一步

最后给两个可执行的动作。

  • 版本升级:用新版本重新编译安装后,在数据库里执行ALTER EXTENSION vector UPDATE;即可完成扩展升级,无需重建表。
  • 日常监控:盯两件事——索引命中率和内存占用,定期跑一次 EXPLAIN 确认查询计划没有漂移。

下一步建议:拿你真实的向量维度建表,建一个 HNSW 索引,测一次最近邻查询——跑完这一轮,你就知道自己该把参数定在多少。

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/24 2:08:52

Node.js+Vue全栈招聘系统开发实践

1. 项目背景与核心价值最近在帮一家中型企业搭建内部招聘系统时&#xff0c;我选择了Node.jsVue的全栈方案。这个技术组合在招聘类平台开发中特别实用&#xff0c;Vue的组件化开发能快速构建复杂的交互界面&#xff0c;Node.js的高并发特性则完美匹配招聘平台流量波动大的特点。…

作者头像 李华
网站建设 2026/8/24 2:08:36

人形机器人开发实战:从宇树G1到特斯拉Optimus的技术栈与生态解析

人形机器人赛道&#xff0c;谁才是真正的“第一名”&#xff1f;是凭借四足机器人技术积累快速切入的宇树科技&#xff0c;还是背靠特斯拉巨大生态和制造能力的“擎天柱”&#xff1f;亦或是那些掌握核心材料命脉的稀土企业&#xff1f;这个问题看似简单&#xff0c;实则指向了…

作者头像 李华
网站建设 2026/8/24 2:08:18

云端世界模型驱动跨本体灵巧操作:从概念到工程实践

在实际机器人研发和工程部署中&#xff0c;一个机器人平台能否从实验室原型走向复杂、动态的真实世界应用&#xff0c;其核心瓶颈往往不在于单一算法的精度&#xff0c;而在于如何构建一个能够持续学习、快速适应并安全执行任务的“大脑”与“身体”协同系统。RoboScience机器科…

作者头像 李华
网站建设 2026/8/24 2:08:16

IAR三阶段训练:实现大模型免检索文档知识内化的实战指南

如果你正在构建一个需要理解长文档、PDF或技术手册的AI应用&#xff0c;比如智能客服、合同审查或代码文档助手&#xff0c;那么一个核心挑战会立刻摆在面前&#xff1a;如何让大语言模型&#xff08;LLM&#xff09;真正“记住”并“理解”海量、复杂的文档内容&#xff1f;传…

作者头像 李华
网站建设 2026/8/24 2:08:12

DeepSeek Harness本地部署指南:从AI编程助手到项目级智能代理

如果你在找一款能把 DeepSeek 模型直接变成编程助手的工具&#xff0c;并且希望它不只是个聊天窗口&#xff0c;而是能像 IDE 一样理解你的项目、分析代码、甚至帮你执行命令&#xff0c;那 DeepSeek Harness 就是你接下来最该花时间研究的东西。 它本质上是一个本地部署的、以…

作者头像 李华
网站建设 2026/8/24 2:07:27

本地AI视频生成实战:MiniMax H3模型与ComfyUI一站式部署指南

最近&#xff0c;AI视频生成领域出现了一个让很多开发者又爱又恨的“新玩具”——MiniMax H3。爱的是&#xff0c;它号称能免费、无限制地生成视频&#xff0c;效果惊艳&#xff1b;恨的是&#xff0c;官方文档语焉不详&#xff0c;社区教程七零八落&#xff0c;从环境配置到工…

作者头像 李华