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

相关推荐
唐叔在学习2 小时前
Python自动化指令进阶:UAC提权
后端·python
12344522 小时前
【面试复盘】有了equals为什么还要hashcode
java·后端
小周在成长2 小时前
MyBatis 分页插件PageHelper
后端
Paladin_z2 小时前
Easy Query中间件的使用
后端
牛奔2 小时前
Go语言中结构体转Map优雅实现
开发语言·后端·macos·golang·xcode
掘金码甲哥2 小时前
我不允许谁还分不清这三种watch机制的区别
后端
张心独酌3 小时前
Rust新手练习案例库- rust-learning-example
开发语言·后端·rust
码事漫谈3 小时前
一文读懂“本体论”这个时髦词
后端
IguoChan3 小时前
D2L(2) — softmax回归
后端