news 2026/5/1 9:35:24

3分钟掌握pgvector:让PostgreSQL拥有向量搜索超能力

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
3分钟掌握pgvector:让PostgreSQL拥有向量搜索超能力

3分钟掌握pgvector:让PostgreSQL拥有向量搜索超能力

【免费下载链接】pgvectorOpen-source vector similarity search for Postgres项目地址: https://gitcode.com/GitHub_Trending/pg/pgvector

想要在PostgreSQL数据库中直接进行向量相似性搜索吗?pgvector正是你需要的开源扩展,它让PostgreSQL具备了专业的向量搜索能力,支持精确和近似最近邻搜索,完美融入你的数据生态系统。

读完本文,你将了解pgvector的核心功能、安装方法和实用场景,快速上手这个强大的向量搜索工具。

什么是pgvector?

pgvector是一个开源的PostgreSQL扩展,专门为向量相似性搜索而生。它支持:

  • 单精度、半精度、二进制和稀疏向量存储
  • 多种距离度量:L2距离、内积、余弦距离、L1距离、汉明距离和杰卡德距离
  • 跨语言兼容:任何支持PostgreSQL客户端的编程语言

更棒的是,pgvector继承了PostgreSQL的所有优秀特性:ACID合规性、时间点恢复、JOIN操作等。

快速安装指南

Linux和Mac系统

cd /tmp git clone --branch v0.8.1 https://gitcode.com/GitHub_Trending/pg/pgvector cd pgvector make sudo make install

Windows系统

确保已安装Visual Studio的C++支持,然后以管理员身份运行"x64 Native Tools Command Prompt":

set "PGROOT=C:\Program Files\PostgreSQL\18" cd %TEMP% git clone --branch v0.8.1 https://gitcode.com/GitHub_Trending/pg/pgvector cd pgvector nmake /F Makefile.win nmake /F Makefile.win install

核心功能实战

创建向量表

启用扩展并创建包含向量列的表:

-- 启用扩展(每个数据库只需执行一次) CREATE EXTENSION vector; -- 创建带3维向量列的表 CREATE TABLE items (id bigserial PRIMARY KEY, embedding vector(3));

插入向量数据

INSERT INTO items (embedding) VALUES ('[1,2,3]'), ('[4,5,6]');

执行相似性搜索

-- 使用L2距离查找最近邻 SELECT * FROM items ORDER BY embedding <-> '[3,1,2]' LIMIT 5;

pgvector支持多种距离操作符:

  • <->L2距离(欧几里得距离)
  • <#>负内积
  • <=>余弦距离
  • <+>L1距离(曼哈顿距离)

索引优化策略

HNSW索引:速度与精度的平衡

HNSW索引构建多层图结构,在查询性能上优于IVFFlat,但构建时间较慢且占用更多内存。

-- 为L2距离创建HNSW索引 CREATE INDEX ON items USING hnsw (embedding vector_l2_ops);

HNSW参数调优

  • m:每层最大连接数(默认16)
  • ef_construction:构建图的动态候选列表大小(默认64)

IVFFlat索引:快速构建的选择

IVFFlat索引将向量划分为多个列表,然后搜索最接近查询向量的列表子集。

-- 为L2距离创建IVFFlat索引 CREATE INDEX ON items USING ivfflat (embedding vector_l2_ops) WITH (lists = 100);

IVFFlat使用技巧

  1. 在表有足够数据后创建索引
  2. 选择合适的列表数量
  3. 查询时指定适当的探测数量

高级功能探索

混合搜索:文本+向量

结合PostgreSQL全文搜索实现混合搜索:

SELECT id, content FROM items, plainto_tsquery('搜索词') query WHERE textsearch @@ query ORDER BY ts_rank_cd(textsearch, query) DESC LIMIT 5;

稀疏向量支持

存储和搜索稀疏向量:

CREATE TABLE items (id bigserial PRIMARY KEY, embedding sparsevec(5)); INSERT INTO items (embedding) VALUES ('{1:1,3:2,5:3}/5'), ('{1:4,3:5,5:6}/5'); SELECT * FROM items ORDER BY embedding <-> '{1:3,3:1,5:2}/5' LIMIT 5;

性能优化要点

内存配置

-- 提高维护工作内存以加速索引构建 SET maintenance_work_mem = '8GB';

并行处理

-- 增加并行工作线程数量 SET max_parallel_maintenance_workers = 7;

常见问题解决

索引未被使用?

确保查询包含ORDER BYLIMIT,且ORDER BY必须是距离操作符的结果:

-- 正确:使用索引 ORDER BY embedding <=> '[3,1,2]' LIMIT 5; -- 错误:不使用索引 ORDER BY 1 - (embedding <=> '[3,1,2]') DESC LIMIT 5;

查询结果过少?

对于HNSW索引,增加动态候选列表大小:

SET hnsw.ef_search = 100;

实际应用场景

pgvector在以下场景中表现出色:

  1. 推荐系统:基于用户行为向量寻找相似用户
  2. 图像搜索:基于图像特征向量查找相似图片
  3. 语义搜索:基于文本嵌入向量进行语义相似性匹配
  4. 异常检测:基于模式向量识别异常行为

总结

pgvector为PostgreSQL注入了向量搜索的超能力,让你能够在熟悉的数据库环境中处理复杂的相似性搜索任务。无论是简单的向量存储还是大规模的生产环境,pgvector都能提供稳定可靠的性能。

开始你的向量搜索之旅吧!在PostgreSQL中创建第一个向量表,体验pgvector带来的便利和强大功能。记住,向量搜索不再是专业系统的专利,现在它就在你的PostgreSQL数据库中!

【免费下载链接】pgvectorOpen-source vector similarity search for Postgres项目地址: https://gitcode.com/GitHub_Trending/pg/pgvector

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 2:32:52

4个高效开源模型推荐:Qwen3-4B镜像免配置部署实测体验

4个高效开源模型推荐&#xff1a;Qwen3-4B镜像免配置部署实测体验 1. Qwen3-4B-Instruct-2507 是什么&#xff1f; 你可能已经听说过 Qwen 系列&#xff0c;但这次的 Qwen3-4B-Instruct-2507 真的有点不一样。它是阿里最新推出的开源大模型之一&#xff0c;基于 40 亿参数规模…

作者头像 李华
网站建设 2026/4/30 17:03:54

通义千问3-14B启动失败?常见错误排查与解决方案汇总

通义千问3-14B启动失败&#xff1f;常见错误排查与解决方案汇总 1. 引言&#xff1a;为什么是 Qwen3-14B&#xff1f; 如果你正在寻找一个性能接近30B级别、但单卡就能跑起来的大模型&#xff0c;那通义千问3-14B&#xff08;Qwen3-14B&#xff09;可能是目前最值得尝试的开源…

作者头像 李华
网站建设 2026/4/27 11:41:33

OpenCore Legacy Patcher深度解析:让老Mac重获新生的技术魔法

OpenCore Legacy Patcher深度解析&#xff1a;让老Mac重获新生的技术魔法 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 还在为那台陪伴多年的老Mac无法升级最新系统而烦…

作者头像 李华
网站建设 2026/4/24 9:19:45

第五人格登录神器:3分钟快速登录终极指南

第五人格登录神器&#xff1a;3分钟快速登录终极指南 【免费下载链接】idv-login idv-login is an IdentityV login tool. 项目地址: https://gitcode.com/gh_mirrors/idv/idv-login 想要快速登录《第五人格》却总是被繁琐的流程困扰&#xff1f;idv-login这款专业的游戏…

作者头像 李华
网站建设 2026/4/18 3:31:03

亲测verl SFT训练流程:数学推理微调效果惊艳

亲测verl SFT训练流程&#xff1a;数学推理微调效果惊艳 1. 引言&#xff1a;SFT为何是通往强推理能力的关键一步&#xff1f; 你有没有遇到过这样的情况&#xff1a;一个预训练大模型看似“懂很多”&#xff0c;但一碰到数学题就乱算&#xff0c;逻辑链条断裂&#xff0c;连…

作者头像 李华
网站建设 2026/5/1 4:31:35

文本分类新方案:Qwen3-Embedding-0.6B实际应用详解

文本分类新方案&#xff1a;Qwen3-Embedding-0.6B实际应用详解 1. 引言&#xff1a;为什么文本分类需要更好的嵌入模型&#xff1f; 在日常的AI应用场景中&#xff0c;文本分类是一个非常基础但又极其关键的任务。无论是判断用户评论的情感倾向、识别新闻类别&#xff0c;还是…

作者头像 李华