如何在 Windows 上编译安装 pgvector:PostgreSQL 向量搜索的 PGROOT 到 vector.dll 实操清单

发布时间:2026/11/2 22:50:23

如何在 Windows 上编译安装 pgvector:PostgreSQL 向量搜索的 PGROOT 到 vector.dll 实操清单 如何在 Windows 上编译安装 pgvectorPostgreSQL 向量搜索的 PGROOT 到 vector.dll 实操清单【免费下载链接】pgvectorOpen-source vector similarity search for Postgres项目地址: https://gitcode.com/GitHub_Trending/pg/pgvectorpgvector 是 PostgreSQL 向量搜索的常用扩展它给数据库加上向量类型、距离函数和近似最近邻索引。在 Windows 上装好之后你可以直接对任意表做相似性查询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]); SELECT id FROM items ORDER BY embedding - [3,1,2] LIMIT 1;最后一条查询会按 L2 距离返回最接近的目标向量。装完就能跑通上面这四行就算完成。编译前需要备好的三样东西装什么装哪个组件装完怎么确认Visual Studio 2022工作负载勾选使用 C 的桌面开发组件里带上 C CMake 工具和 Windows SDK终端输入cl能打印出 C/C 编译器版本信息PostgreSQL 13 及以上安装时勾选 Development Filesdir %PGROOT%\include\server\postgres.h能列出该头文件PGROOT 环境变量指向 PostgreSQL 安装根目录echo %PGROOT%回显的路径下同时存在include、lib、share三个目录编译器、头文件、环境变量三者齐了后面两步才不会出现找不到东西的报错。阶段一最快拿到编译器环境不要直接在普通 cmd 里敲命令。从开始菜单启动 x64 Native Tools Command Prompt for VS 2022并右键选择以管理员身份运行。管理员身份是留给安装阶段写C:\Program Files用的先开好免得中途重来。cl预期输出是微软 C/C 优化编译器的版本横幅Microsoft (R) C/C Optimizing Compiler及版本号最后提示输入源文件名。通过标准能打印横幅即通过。回显 cl.exe 不是内部或外部命令 说明你开的不是这个终端换个窗口重来。阶段二如何确认 PGROOT 指向正确Makefile.win 里有一段检查PGROOT 未设置会直接报!error PGROOT is not set它负责定位include、lib、share三个目录。所以把它指到 PostgreSQL 的安装根目录且路径带空格时记得用引号包住。set PGROOTC:\Program Files\PostgreSQL\16 echo %PGROOT% dir %PGROOT%\include\server\postgres.h预期输出第一行回显你设置的完整路径第二行列出postgres.h的文件名和大小。通过标准路径回显无误、postgres.h存在。如果dir报找不到文件要么开发组件没装要么版本号写错了回到准备清单重新核对。阶段三编译、安装与体检克隆源码并编译cd %TEMP% git clone https://gitcode.com/GitHub_Trending/pg/pgvector.git cd pgvector nmake /F Makefile.win预期输出src\下 20 个 .c 文件依次编译成 .objbitutils、vector、hnsw 系列、ivf 系列等最后一步链接生成vector.dll。通过标准当前目录出现vector.dll全程没有 LNK 开头的错误。安装到 PostgreSQLnmake /F Makefile.win install这一步会把 dll 拷进lib把vector.control和各版本升级脚本拷进share\extension。dir %PGROOT%\lib\vector.dll dir %PGROOT%\share\extension\vector.control预期输出两条命令各自列出一个文件。⚠️ 若回显 Access denied先执行net stop postgresql-x64-16停掉服务再装装完net start启动即可。连库体检用 psql 连上数据库跑开头那四行 SQL。查询返回id 1即说明类型、函数、扩展都工作正常。排错速查表编译安装报错的一行修复现象根因一行修复cl.exe 不是内部或外部命令未在 VS 工具终端里操作从开始菜单重开 x64 Native Tools Command Prompt for VS 2022PGROOT is not set环境变量没设或拼错set PGROOTC:\Program Files\PostgreSQL\16无法打开包括文件 postgres.h没装 Development Files 或 PGROOT 指错重装 PostgreSQL 并勾选 Development Files再dir验证头文件链接报 LNK2019 未解析符号%PGROOT%\lib\postgres.lib不存在确认 PGROOT 下lib目录里有postgres.lib路径错了就改 PGROOT安装时 Access deniedPostgreSQL 服务占用了目标文件net stop postgresql-x64-16后重跑nmake /F Makefile.win installCREATE EXTENSION vector报打不开共享库装完没重启服务或 dll 没进 lib 目录重启 PostgreSQL 服务并dir %PGROOT%\lib\vector.dll复核 排错时先跑echo %PGROOT%和两条dir命令六个条目里的一半问题在这一步就能定位。能力速览装好之后能做什么向量类型除标准单精度vector外还提供半精度halfvec、二进制bit和稀疏sparsevec各自对应不同存储与计算场景。距离度量L2-、内积#、余弦、L1二进制向量还有汉明~与 Jaccard%。索引算法不加索引时是精确最近邻加上 IVFFlat 或 HNSW 后转为近似搜索用少量召回换查询速度。接下来可以做的两件事一是给items表建一个USING hnsw (embedding vector_l2_ops)索引对比加索引前后LIMIT 1查询的耗时二是跑一遍回归测试集命令是nmake /F Makefile.win installcheck用例在 test/sql/ 目录下。pgvector 的价值在于向量查询与 SQL、事务、JOIN 共用一套基础设施装好后无需再维护第二套向量服务。【免费下载链接】pgvectorOpen-source vector similarity search for Postgres项目地址: https://gitcode.com/GitHub_Trending/pg/pgvector创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/11/2 22:49:33

单机经营游戏数值调整:备份、字段定位与体验平衡指南

玩《庄园领主》玩到第三张地图的时候,我卡在了一个特别典型的位置:人口涨到一百多口,粮食链却始终差一口气,每年冬天都要靠拆东墙补西墙硬撑,眼睁睁看着熬过两轮寒冬的熟练工家庭因为没面包搬走。那段时间我把市面上能…

2026/11/2 22:49:33

C++五子棋实战项目:从控制台游戏到可扩展AI工程

简介:这是一份面向C初学者与游戏编程入门者的五子棋实战项目资源,聚焦算法逻辑、类设计与人机交互实现,帮助学习者掌握游戏开发核心流程。资源包含7个文件,涵盖3个可执行程序(支持鼠标/键盘操作的“人对人”“人对机”…

2026/11/2 22:49:33

KV Cache压缩到1/4后,推理基建如何避免性能倒退

1. 当KV Cache被压到四分之一,真正被考验的其实不是模型DeepSeek V4.1 Flash 这次把 KV Cache 压到原来的四分之一,这个数字一出来,圈子里第一反应基本都是"显存又能省一大截了"。但如果你真的在生产环境里跑过大模型推理服务&…

2026/11/2 22:49:33

LeetCode 124题解析:二叉树最大路径和的动态规划解法

1. 题目解析与核心思路LeetCode 124题"二叉树中的最大路径和"是一个经典的树形动态规划问题。题目要求我们在一棵二叉树中寻找一条路径,使得路径上所有节点值的和最大。这里的路径定义为任意节点序列,序列中每对相邻节点之间都存在一条边&…

2026/11/2 22:44:33

多Agent系统组织模型设计与实践指南

1. 多Agent系统组织模型设计概述在复杂问题求解领域,多Agent系统(MAS)正成为突破传统集中式架构局限的关键技术范式。这种由多个自主智能体组成的分布式网络,通过角色分工与协同机制,展现出处理开放性、动态性任务的独特优势。去年某电商平台…

2026/11/2 6:08:01

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/2 6:39:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 1:04:04

工业级SPI隔离设计:硬件抗扰与信号完整性实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 1:04:04

PLFM_RADAR:主动探测数据通道,构建低误报的数据感知系统

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 1:04:04

工业SPI隔离设计:MAX14431与STM32F746硬件抗干扰实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 6:08:01

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/2 6:39:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑