news 2026/7/5 8:20:15

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/7/1 13:34:25

2026年AI图像修复趋势:fft npainting lama开源模型+弹性算力

2026年AI图像修复趋势&#xff1a;fft npainting lama开源模型弹性算力 1. 引言&#xff1a;图像修复进入“精准重绘”时代 你有没有遇到过这样的情况&#xff1a;一张珍贵的老照片上有划痕&#xff0c;或者截图里带着不想留的水印&#xff0c;又或者合影中出现了不该在的人&…

作者头像 李华
网站建设 2026/7/1 21:28:56

宿主机资源监控:top命令观察unet运行状态实战教程

宿主机资源监控&#xff1a;top命令观察unet运行状态实战教程 1. 教程目标与适用场景 你是否在使用AI模型时遇到过卡顿、响应慢甚至崩溃的情况&#xff1f;尤其是在运行像UNet人像卡通化这类计算密集型任务时&#xff0c;系统资源的使用情况直接决定了处理效率和稳定性。本教…

作者头像 李华
网站建设 2026/7/1 13:15:33

DiT模型如何“看见“世界:注意力可视化深度解析

DiT模型如何"看见"世界&#xff1a;注意力可视化深度解析 【免费下载链接】DiT Official PyTorch Implementation of "Scalable Diffusion Models with Transformers" 项目地址: https://gitcode.com/GitHub_Trending/di/DiT 当我们欣赏DiT模型生成…

作者头像 李华
网站建设 2026/7/1 23:54:13

Anki记忆革命:如何用间隔重复算法重塑学习效率

Anki记忆革命&#xff1a;如何用间隔重复算法重塑学习效率 【免费下载链接】anki Ankis shared backend and web components, and the Qt frontend 项目地址: https://gitcode.com/GitHub_Trending/an/anki 在信息爆炸的时代&#xff0c;我们每天都要面对海量的知识输入…

作者头像 李华
网站建设 2026/7/1 21:36:59

Hystrix隔离机制深度解析:从原理到实战的完整指南

Hystrix隔离机制深度解析&#xff1a;从原理到实战的完整指南 【免费下载链接】advanced-java &#x1f62e; Core Interview Questions & Answers For Experienced Java(Backend) Developers | 互联网 Java 工程师进阶知识完全扫盲&#xff1a;涵盖高并发、分布式、高可用…

作者头像 李华
网站建设 2026/7/2 23:24:24

Granite-Docling:258M轻量AI文档解析提速指南

Granite-Docling&#xff1a;258M轻量AI文档解析提速指南 【免费下载链接】granite-docling-258M 项目地址: https://ai.gitcode.com/hf_mirrors/ibm-granite/granite-docling-258M 导语 IBM Research推出轻量级多模态模型Granite-Docling-258M&#xff0c;以258M参数…

作者头像 李华