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.dllvector.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 → 验证成功

相关推荐
树码小子16 分钟前
SpringIoC & DI (1):IOC介绍 & Spring IoC使用 & DI
java·后端·spring
墨染青竹梦悠然2 小时前
基于Django+vue的图书借阅管理系统
前端·vue.js·后端·python·django·毕业设计·毕设
怪兽毕设2 小时前
基于Django的洗衣服务平台设计与实现
后端·python·django·洗衣服务平台
程序员泠零澪回家种桔子2 小时前
微服务日志治理:ELK 栈实战指南
后端·elk·微服务·云原生·架构
qq_12498707532 小时前
基于html的书城阅读器系统的设计与实现(源码+论文+部署+安装)
前端·vue.js·spring boot·后端·mysql·信息可视化·html
CodeToGym3 小时前
【全栈进阶】Spring Boot 整合 WebSocket 实战:从实时告警到金融行情推送
java·后端·spring
Leinwin3 小时前
Moltbot 部署至 Azure Web App 完整指南:从本地到云端的安全高效跃迁
后端·python·flask
毕设源码-邱学长3 小时前
【开题答辩全过程】以 基于Springboot个人健康运动系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
愿你天黑有灯下雨有伞3 小时前
Spring Boot + FastExcel:打造完美的导入校验功能
java·spring boot·后端
云霄IT3 小时前
go语言post请求遭遇403反爬解决tls/ja3指纹或Cloudflare防护
开发语言·后端·golang