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

相关推荐
昵称为空C18 小时前
在复杂SpringBoot项目中基于hutool实现临时添加多数据源案例
spring boot·后端
金融数据出海19 小时前
韩国股票 API 对接指南 Seoul&KOSDAQ
后端
geovindu19 小时前
go: Simple Factory Pattern
开发语言·后端·设计模式·golang·简单工厂模式
咕白m62519 小时前
Python 高效添加与管理 Excel 工作表
后端·python
计算机学姐19 小时前
基于SpringBoot的房屋交易系统
java·vue.js·spring boot·后端·spring·intellij-idea·mybatis
java1234_小锋19 小时前
SpringBoot 4 + Spring Security 7 + Vue3 前后端分离项目设计最佳实践
spring boot·后端·spring
今夕资源网19 小时前
indextts API 阅读 API 重磅升级!低延迟 + 音色管理 + 缓存全拉满 支持开源阅读小说软件,其他软件应该也通用
java·后端·spring
Rick199319 小时前
Spring Cloud 原理是什么?
后端·spring·spring cloud
掘金者阿豪20 小时前
从死守 Windows 到彻底 Mac 化:程序员一旦用了 Mac,真的很难再回去
后端
阿里加多20 小时前
第 5 章:Go 内存模型与 Happens-Before 原则
开发语言·后端·golang