news 2026/6/18 14:48:55

5分钟搞定pgvector:让PostgreSQL拥有向量搜索超能力

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
5分钟搞定pgvector:让PostgreSQL拥有向量搜索超能力

5分钟搞定pgvector:让PostgreSQL拥有向量搜索超能力

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

还在为复杂的向量搜索工具发愁吗?pgvector让你的PostgreSQL数据库瞬间变身AI向量搜索引擎!这个开源扩展为PostgreSQL添加了强大的向量相似性搜索功能,让你能够将向量数据与业务数据存储在一起,实现高效、精确的相似性匹配。

无论你是要构建推荐系统、实现图像搜索,还是开发智能问答应用,pgvector都能帮你轻松搞定。支持L2距离、内积、余弦距离等多种相似度计算方式,让你的应用具备真正的AI智能!

为什么选择pgvector?🚀

一站式解决方案:无需额外部署专门的向量数据库,直接在现有的PostgreSQL环境中使用ACID保证:享受PostgreSQL完整的事务支持,数据安全有保障零学习成本:使用熟悉的SQL语法,立即上手向量搜索

快速上手:3步开启向量搜索之旅

第一步:安装扩展

在Linux和Mac系统上,安装pgvector简单到只需几条命令:

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

Windows用户也不用担心,使用Visual Studio命令提示符即可完成安装:

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

第二步:启用扩展并创建表

连接到你的PostgreSQL数据库,执行以下SQL:

-- 启用向量扩展 CREATE EXTENSION vector; -- 创建包含向量列的表 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;

核心功能深度解析

多种向量类型支持

pgvector不仅支持标准的单精度浮点向量,还提供了丰富的向量类型选择:

  • halfvec:半精度向量,节省存储空间
  • bit:二进制向量,适合大规模数据
  • sparsevec:稀疏向量,处理高维稀疏数据

精确与近似搜索自由切换

精确搜索:保证100%的召回率,适合数据量不大的场景近似搜索:通过HNSW和IVFFlat索引,在大数据量下依然保持高速

强大的索引策略

HNSW索引:构建多层图结构,查询性能优秀但构建时间较长IVFFlat索引:将向量分组到列表中,构建快速但查询性能相对较低

实战案例:构建智能推荐系统

假设你要构建一个商品推荐系统,下面是完整的实现流程:

-- 创建商品表 CREATE TABLE products ( id bigserial PRIMARY KEY, name text, category text, embedding vector(1536) -- OpenAI embedding维度 ); -- 插入商品向量 INSERT INTO products (name, category, embedding) VALUES ('笔记本电脑', '电子产品', '[0.1,0.2,...,0.1536]'), ('智能手机', '电子产品', '[0.3,0.1,...,0.1536]'); -- 为用户推荐相似商品 SELECT name, category FROM products ORDER BY embedding <=> '[0.2,0.1,...,0.1536]' LIMIT 10;

性能优化秘籍

索引参数调优

对于HNSW索引,关键参数包括:

  • m:每层最大连接数(默认16)
  • ef_construction:构建图的动态候选列表大小(默认64)
-- 创建优化的HNSW索引 CREATE INDEX ON products USING hnsw (embedding vector_cosine_ops) WITH (m = 16, ef_construction = 64);

查询性能提升技巧

-- 设置搜索参数 SET hnsw.ef_search = 100; -- 使用事务确保参数仅对当前查询生效 BEGIN; SET LOCAL hnsw.ef_search = 100; SELECT * FROM products ORDER BY embedding <=> '[0.2,0.1,...,0.1536]' LIMIT 10; COMMIT;

常见问题速查手册

Q:pgvector支持的最大向量维度是多少?A:标准向量支持2000维,半精度向量支持4000维,二进制向量支持64000维!

Q:如何在不同编程语言中使用pgvector?A:支持所有有PostgreSQL客户端的语言,包括Python、JavaScript、Java、Go等。

Q:数据量大时如何保证搜索速度?A:使用HNSW或IVFFlat近似索引,在召回率和速度之间找到最佳平衡。

进阶功能探索

混合搜索:向量+全文搜索

SELECT id, name, category FROM products, plainto_tsquery('高端电子设备') query WHERE to_tsvector(name || ' ' || category) @@ query ORDER BY embedding <=> '[0.2,0.1,...,0.1536]' LIMIT 10;

子向量索引:处理超长向量

-- 索引向量的前768维 CREATE INDEX ON products USING hnsw ((subvector(embedding, 1, 768)::vector(768)) vector_cosine_ops);

总结与展望

pgvector为PostgreSQL带来了革命性的向量搜索能力,让传统的关系型数据库也能胜任AI时代的挑战。无论是初创公司还是大型企业,都能从这个轻量级解决方案中获益。

现在就开始你的向量搜索之旅吧!记住,强大的功能背后是简单的使用体验。pgvector让你的PostgreSQL数据库不仅存储数据,更能理解数据!

🎯专业提示:在生产环境中,记得使用CREATE INDEX CONCURRENTLY来避免阻塞写入操作。

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

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

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

iperf3网络测试实战:从入门到精通的完整指南

iperf3网络测试实战&#xff1a;从入门到精通的完整指南 【免费下载链接】iperf iperf3: A TCP, UDP, and SCTP network bandwidth measurement tool 项目地址: https://gitcode.com/gh_mirrors/ip/iperf iperf3是一款专业的网络带宽测试工具&#xff0c;能够准确测量TC…

作者头像 李华
网站建设 2026/6/17 0:11:00

霞鹜文楷:让每个中文字都拥有优雅的灵魂

霞鹜文楷&#xff1a;让每个中文字都拥有优雅的灵魂 【免费下载链接】LxgwWenKai LxgwWenKai: 这是一个开源的中文字体项目&#xff0c;提供了多种版本的字体文件&#xff0c;适用于不同的使用场景&#xff0c;包括屏幕阅读、轻便版、GB规范字形和TC旧字形版。 项目地址: htt…

作者头像 李华
网站建设 2026/6/17 6:58:20

GPEN模型缓存路径说明,避免重复下载

GPEN模型缓存路径说明&#xff0c;避免重复下载 你是不是也遇到过这样的情况&#xff1a;第一次运行GPEN人像修复脚本时&#xff0c;等了整整十分钟&#xff0c;进度条卡在“正在下载模型权重”&#xff1b;第二次想换张照片试试&#xff0c;结果又开始下载——明明上回已经跑…

作者头像 李华
网站建设 2026/6/17 19:43:37

Open-AutoGLM降本部署:云服务器按需计费+AI代理实战

Open-AutoGLM降本部署&#xff1a;云服务器按需计费AI代理实战 你有没有想过&#xff0c;让一个AI助手帮你操作手机&#xff1f;不是简单的语音唤醒&#xff0c;而是真正“看懂”屏幕、理解界面、自动点击、滑动、输入文字&#xff0c;像真人一样完成一整套复杂任务。比如你说…

作者头像 李华
网站建设 2026/6/17 17:14:15

Yuzu模拟器性能突破:3步解锁高帧率游戏体验

Yuzu模拟器性能突破&#xff1a;3步解锁高帧率游戏体验 【免费下载链接】yuzu-downloads 项目地址: https://gitcode.com/GitHub_Trending/yu/yuzu-downloads 还在为yuzu模拟器游戏卡顿而烦恼吗&#xff1f;想要获得更流畅的yuzu模拟器帧率解锁效果&#xff1f;作为游戏…

作者头像 李华
网站建设 2026/6/18 1:50:59

HY-MT1.5-7B核心优势揭秘|33种语言互译与民族语言支持全解析

HY-MT1.5-7B核心优势揭秘&#xff5c;33种语言互译与民族语言支持全解析 1. 模型定位&#xff1a;不只是翻译&#xff0c;更是跨语言理解的升级 你有没有遇到过这种情况&#xff1f;把一段中文技术文档扔给翻译工具&#xff0c;结果英文输出像是“机器梦话”——语法勉强通顺…

作者头像 李华