Windows 在 PostgreSQL 上安装 vector 扩展

一、pgvector 是什么?为什么需要它?

pgvector 是 PostgreSQL 的扩展插件,让你在数据库里直接存储和查询高维向量。典型场景:

  • 用大模型(OpenAI、BERT)生成文本Embedding
  • 图片相似搜索
  • 推荐系统

核心功能:

sql 复制代码
-- 存储 1536 维向量
CREATE TABLE documents (embedding vector(1536));

-- 相似度搜索(自动用索引加速)
SELECT * FROM documents ORDER BY embedding <=> '[0.1, 0.2, ...]' LIMIT 10;

二、前置条件检查

开始之前,确认你的环境:

项目 建议版本 检查命令
PostgreSQL 15 或 16(18 太新,兼容性差) SELECT version();
端口 默认 5432(你的可能是 5433) `netstat -ano
Visual Studio 2022 社区版(免费) 见下文

⚠️ 避坑提示 :如果你看到端口是 5433 ,说明安装时 5432 被占用了。本文所有配置文件请用 5433。


三、安装 Visual Studio 编译工具(精简版)

pgvector 是 C 语言写的,需要编译。但不用装完整 VS,3 个组件就够:

  1. 适用于 x64/x86 的 MSVC 生成工具(最新版)(核心编译器)
  2. Windows 11 SDK(系统头文件)
  3. 用于 Windows 的 C++ CMake 工具(构建工具)

安装步骤:

  1. 访问 Visual Studio 下载页
  2. 下载 Build Tools for Visual Studio 2022
  3. 安装时只勾选上述 3 项,其他全取消
  4. 总大小约 2GB(完整版 10GB+)

四、下载 pgvector 源码

访问 GitHub Releases 页面: github.com/pgvector/pg...

下载 最新稳定版 (比如 v0.8.0.zip),解压到短路径(建议 C:\code\pgvector-0.8.0)。


五、编译安装(关键步骤)

步骤 1:打开编译环境

在开始菜单搜索 "x64 Native Tools Command Prompt for VS 2022" ,右键 → 以管理员身份运行。

步骤 2:执行编译命令

依次输入以下命令(根据你的实际路径修改):

cmd 复制代码
:: 1. 进入源码目录
cd C:\code\pgvector-0.8.0

:: 2. 设置 PostgreSQL 路径(注意版本号)
set "PGROOT=C:\Program Files\PostgreSQL\15"

:: 3. 编译(如果端口是 5433,这里不用改)
nmake /F Makefile.win

:: 4. 安装到 PostgreSQL
nmake /F Makefile.win install

成功标志:

  • 没有 fatal error U1077
  • 最后一行显示 Install file: "..."

六、验证安装

在 psql 或 DBeaver 里执行:

sql 复制代码
-- 查看是否可用
SELECT * FROM pg_available_extensions WHERE name = 'vector';

-- 创建扩展(每个数据库只需一次)
CREATE EXTENSION vector;

-- 验证
SELECT 'hello world'::vector;

如果返回向量值,说明安装成功!


七、常见问题与解决方案

问题 1:extension "vector" is not available

原因:扩展没编译成功,或装到了错误的 PostgreSQL 版本。

解决:

cmd 复制代码
-- 清理后重新编译
nmake /F Makefile.win clean
nmake /F Makefile.win
nmake /F Makefile.win install

问题 2:vacuum_delay_point 参数错误

原因:PostgreSQL 18(开发版)与 pgvector 不兼容。

解决 :降级到 PostgreSQL 15/16,或用预编译 DLL(见下文)。

问题 3:编译太麻烦

终极方案 :用 预编译 DLL(适合懒人)

  1. 下载 vector.dll 和 vector.control:
  2. 复制到:
    • C:\Program Files\PostgreSQL\15\lib\vector.dll
    • C:\Program Files\PostgreSQL\15\share\extension\vector.control
  3. 重启服务

八、完整流程图

sql 复制代码
下载 pgvector → 安装 VS 精简组件 → 打开 x64 命令行 → 
设置 PGROOT 路径 → nmake 编译 → nmake 安装 → 
CREATE EXTENSION → 验证成功

相关推荐
金銀銅鐵26 分钟前
[Java] 用 CLI 展示 EnumSet 增减元素时的内部变化(上)
java·后端·ai编程
tedcloud1231 小时前
Docker Compose 部署 Memos:从安装到备份恢复
linux·开发语言·jvm·后端·docker·容器·rust
木井巳1 小时前
【JavaEE】SpringBoot 统一功能处理: 拦截器、统一返回与全局异常
java·spring boot·后端·spring·java-ee
pan_junbiao1 小时前
Go语言中的空白标识符
开发语言·后端·golang
IT_陈寒2 小时前
SpringBoot性能优化完全指南
前端·人工智能·后端
随性而行3602 小时前
企业微信 Webhook 接收不到消息?网络连通性、URL 签名验签与 API 返回错误码排查指南
java·网络·人工智能·后端·微信·企业微信
相隔一个图书馆的距离3 小时前
单测(三)Spring Boot 3.5.6 && @MockitoSpyBean / AOP / 循环依赖:静默吞错与运行期 NPE
java·spring boot·后端
凤山老林3 小时前
Spring Boot 集成 Apache CXF 发布与消费 SOAP WebService:WSDL、WS-Security
spring boot·后端·apache·webservice·soap·apache cxf
软件技术NINI3 小时前
基于JavaWeb 汽车租聘
java·vue.js·spring boot·后端·python·毕业设计·毕设
yz_aiks3 小时前
RestTemplate 废弃后迁移 RestClient 实战:Spring Boot 4.2 升级指南
java·spring boot·后端·微服务·restclient