向量库是AI本地化部署的核心支撑,它能将大模型生成的向量数据存储在本地,避免数据外发风险,同时大幅降低语义搜索、个性化推荐等场景的响应延迟,让AI应用在离线环境也能高效运行。
PostgreSQL的PGVector插件凭借原生集成优势,成为本地化向量存储的优选方案。它无需额外搭建独立向量数据库,直接复用PostgreSQL的ACID事务、权限控制等成熟能力,实现向量数据与业务数据的统一管理。同时支持IVFFlat、HNSW等高效索引算法,能在保证搜索精度的前提下,处理百万级高维向量数据,显著降低AI本地化的部署成本与运维复杂度。
一、PostgreSQL Vector在Windows的安装
参考资料:https://juejin.cn/post/7517955159005659155
- 在git上下载pgvector
https://github.com/pgvector/pgvector
选择符合PostgreSQL版本的pgvector,比如PostgreSQL14可以使用0.6.2的pgvector 可以在命令窗口使用以下命令下载对应tag的版本。(记得先切换目录)安装过程可以参考其readme.md文档
git clone –branch v0.6.2 https://github.com/pgvector/pgvector.git
- 安装Visual Studio 2022(勾选C++ 桌面开发)
从Visual Studio官网下载安装文件点击安装,选择 C++ 桌面开发 ,主要勾选以下两个组件

- 安装完成后,在”开始”搜索栏搜索 “x64 Native Tools Command Prompt for VS”, 然后右键使用管理者身份运行
在其中切换目录到pgvector目录,然后依次执行: set “PGROOT=C:\Program Files\PostgreSQL\14” //根据PostgreSQL安装目录调整。目录截止到包含include文件夹
nmake /F Makefile.win
nmake /F Makefile.win install
- PostgreSQL 设定pgvector
SELECT * FROM pg_available_extensions WHERE name=’vector’; // 查询pgvector是否可用
CREATE EXTENSION IF NOT EXISTS vector;// 启用 pgvector
SELECT * FROM pg_extension WHERE extname=’vector’; // 查询启用结果,能查到pgvector版本即安装成功
若是LangChain4j处理复杂元数据,则需启用了hstore和uuid-ossp扩展:
CREATE EXTENSION IF NOT EXISTS hstore;
CREATE EXTENSION IF NOT EXISTS “uuid-ossp”;
PostgreSQL 常用命令:
查看PostgreSQL版号信息:select version();
检测pgvector扩展版本:SELECT * FROM pg_extension WHERE extname = ‘vector’;
二、PostgreSQL在Docker的安装:
PostgreSQL:安装在docker容器中,0
安装参数如下:
docker run -d \
–name postgres-pgvector \
-p 5432:5432 \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=password\
-e POSTGRES_DB=databasename\
-v pgdata:/var/lib/postgresql/data \
–restart=unless-stopped \
postgres:16
进入到指定容器:
docker exec -it postgres-pgvector bash
查看容器:docker ps -a
重启容器:docker restart 容器名
查看容器日志:docker logs 容器名
远程连接数据库:
psql -h localhost -p 5432 -U postgres -d databasename
密码为 password
创建新数据库:
CREATE DATABASE databasename WITH ENCODING ‘utf8’ TEMPLATE template0 LC_COLLATE ‘en_US.UTF-8’ LC_CTYPE ‘en_US.UTF-8’;
创建用户: CREATE USER username WITH ENCRYPTED PASSWORD ‘password’ SUPERUSER;

