ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

从克隆到跑通:pgvector 向量检索扩展安装教程(约 10 分钟)

从克隆到跑通:pgvector 向量检索扩展安装教程(约 10 分钟) 从克隆到跑通pgvector 向量检索扩展安装教程约 10 分钟【免费下载链接】pgvectorOpen-source vector similarity search for Postgres项目地址: https://gitcode.com/GitHub_Trending/pg/pgvectorpgvector 是 PostgreSQL 的开源向量检索扩展装好之后 embedding 可以直接躺在普通表里建个 HNSW 索引、一条ORDER BY就能查相似项不用再单独养一套向量数据库。这篇文章带你从零走完整个流程编译安装、启用扩展、建表灌数据、跑通第一条向量查询。全程 4 条编译命令 3 条 SQL跟着敲就行。开工前核对这 4 项项目要求为什么容易漏PostgreSQL13 及以上推荐 16 / 17装好软件还不够编译时要用到它的头文件开发头文件Linux/macOS 装postgresql-server-dev-版本Ubuntu/Debian 包名只装了服务端没装 dev 包时make会报找不到pg_config编译器Linux/macOS 用 gcc 或 clangWindows 用 VS 2019 并勾选C 桌面开发Windows 少了 SDK 组件会在编译中途才报错git 和 psql 客户端任意较新版拉源码、连库各用一次不想本地编译的话仓库自带docker目标Makefile 里make docker可以直接构建镜像本文只讲源码编译这条路。Linux / macOS4 条命令编译安装 pgvector1. 把源码拉到临时目录cd /tmp git clone --branch v0.8.6 https://gitcode.com/GitHub_Trending/pg/pgvector cd pgvector固定拉 v0.8.6 这个版本装完源码删掉也不影响。跑完应看到/tmp/pgvector目录出现里面有src/、sql/、Makefile。2. make 编译make这一步按 Makefile 把 src/ 下的 18 个 C 文件编成vector.so。跑完应生成vector.so终端没有Error字样即成功。3. make install 装进 PostgreSQLmake install这一步把vector.so、vector.control 和 sql/ 下的版本脚本拷进 PostgreSQL 的lib和share/extension目录普通用户装系统目录时会提示权限不足加sudo make install即可。跑完后share/extension/下应能看到vector--0.8.6.sql。4. Windows把 make 换成 nmakeset PGROOTC:\Program Files\PostgreSQL\16 cd %TEMP% git clone --branch v0.8.6 https://gitcode.com/GitHub_Trending/pg/pgvector cd pgvector nmake /F Makefile.win nmake /F Makefile.win installMakefile.win 靠PGROOT定位头文件和安装目标所以第一条命令必须在同一个会话里先执行且要在 VS 的x64 Native Tools Command Prompt里敲。最后一条命令跑完%PGROOT%\lib下应出现vector.dll。启用 vector 扩展2 条 SQL 验证用 psql 连上你要用的数据库注意每个数据库都要单独启用一次CREATE EXTENSION vector; SELECT vector_version();第二条应返回0.8.6看到版本号说明扩展已加载部署闭环完成。✅建表、灌数据、跑第一条向量查询下面 3 条 SQL 是最小验证建一张 3 维向量表、插两条数据、按 L2 距离查最近邻CREATE TABLE items (id bigserial PRIMARY KEY, embedding vector(3)); INSERT INTO items (embedding) VALUES ([1,2,3]), ([4,5,6]); SELECT * FROM items ORDER BY embedding - [3,1,2] LIMIT 5;第三条查询的-是 L2 距离算子。预期返回 2 行[1,2,3]排在第一、距离约 1.73因为它离查询向量[3,1,2]更近。数据量大时给索引加速加一行CREATE INDEX ON items USING hnsw (embedding vector_l2_ops);建完这条索引上面的查询就会走 HNSW 图索引实现在 src/hnsw.c小表则顺序扫描更快先跑通再调优。pgvector 装不动时对照这张表找原因⚠️ 编译阶段飘红基本逃不出下面 4 种先对号入座现象原因解法pg_config: command not found缺 PostgreSQL 服务端开发包装上与服务端同版本的postgresql-server-dev-版本后重跑makemake install提示权限不足目标目录属于系统换sudo make installPGROOT is not setWindows变量没设或重开了终端后失效当前会话重新执行set PGROOT...再nmake /F Makefile.win clean从头编找不到crtdefs.h、大量 C2xxx 错误Windows用错终端不在 VS 原生环境里换成x64 Native Tools Command Promptnmake /F Makefile.win clean后重编想更放心跑一轮官方回归测试make installcheck这一步把 test/sql/ 下 14 个用例全部过一遍覆盖类型转换、距离函数和 HNSW/IVFFlat 索引构建Windows 下对应nmake /F Makefile.win installcheck。结尾输出All N tests passed.即为全绿。从克隆源码到第一条相似性查询你已经把 pgvector 完整跑通了。下一步建议把真实 embedding 灌进表里建 HNSW 索引后把ef_search调高一点用EXPLAIN确认查询走了索引。【免费下载链接】pgvectorOpen-source vector similarity search for Postgres项目地址: https://gitcode.com/GitHub_Trending/pg/pgvector创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进