发布时间:2026/9/5 15:51:01
如何在 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/9/5 16:36:03

读《瞳人语》的警示:戒掉那点色心,才能看见真正的光

读完《瞳人语》,最大的感受是:蒲松龄写的根本不是鬼,他想写的是男人最该戒掉的那点色心。故事里确实也带着志怪色彩,但那种色彩不来自厉鬼,而来自一个人眼底的翳膜,以及他在黑暗里听见的、自己心里的声音。…

2026/9/5 16:36:03

Wand-Enhancer完整指南:免费解锁WeMod Pro高级功能

Wand-Enhancer完整指南:免费解锁WeMod Pro高级功能 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer WeMod 的高级功能都被 Pro 订阅锁着…

2026/9/5 16:36:03

10分钟连上第一个数据库:Beekeeper Studio 3步搭好环境

10分钟连上第一个数据库:Beekeeper Studio 3步搭好环境 【免费下载链接】beekeeper-studio Modern and easy to use SQL client for MySQL, Postgres, SQLite, SQL Server, and more. Linux, MacOS, and Windows. 项目地址: https://gitcode.com/GitHub_Trending/…

2026/9/5 16:36:03

calibre 电子书格式转换实操指南

calibre 电子书格式转换实操指南 【免费下载链接】calibre The official source code repository for the calibre ebook manager 项目地址: https://gitcode.com/GitHub_Trending/ca/calibre calibre 是一款开源免费的电子书管理软件,核心能力是把 PDF、EPU…

2026/9/5 2:46:54

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/9/5 2:46:52

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/9/5 2:44:34

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/9/5 0:04:47

流式背压机制:避免前端渲染卡死与内存暴涨的滑动窗口限流

流式背压机制:避免前端渲染卡死与内存暴涨的滑动窗口限流在大模型流式输出(Streaming)与智能体实时推流的架构中,生产环境中经常出现一种“上下游生产消费速率严重失衡”的极端情况: 生产端极速产出:大模型…

2026/9/5 2:45:13

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/5 2:30:42

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/5 2:46:50

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…