news 2026/4/18 5:43:02

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/4/18 5:35:50

为什么Sambert需要CUDA 11.8?GPU加速部署必要性解析

为什么Sambert需要CUDA 11.8&#xff1f;GPU加速部署必要性解析 1. Sambert多情感中文语音合成&#xff1a;不只是“能说话”那么简单 你有没有想过&#xff0c;AI生成的语音也能有喜怒哀乐&#xff1f;不是机械地念字&#xff0c;而是像真人一样带着情绪说话——高兴时语调上…

作者头像 李华
网站建设 2026/4/18 5:13:58

RustDesk虚拟显示:告别单屏局限,开启多显示器远程办公新时代

RustDesk虚拟显示&#xff1a;告别单屏局限&#xff0c;开启多显示器远程办公新时代 【免费下载链接】rustdesk 一个开源的远程桌面&#xff0c;是TeamViewer的替代选择。 项目地址: https://gitcode.com/GitHub_Trending/ru/rustdesk 你是否曾在远程控制服务器时因为缺…

作者头像 李华
网站建设 2026/4/11 23:30:37

SpringBoot接入DeepSeek-OCR实现结构化数据提取

SpringBoot接入DeepSeek-OCR实现结构化数据提取 在企业级应用中&#xff0c;纸质单据、发票、合同等文档的数字化处理一直是一个高频且繁琐的任务。传统的人工录入方式不仅效率低下&#xff0c;还容易出错。随着AI技术的发展&#xff0c;尤其是OCR&#xff08;光学字符识别&am…

作者头像 李华
网站建设 2026/4/15 8:20:07

为什么你应该立即体验DeepSeek-V3.2:免费AI助手的专业级表现

为什么你应该立即体验DeepSeek-V3.2&#xff1a;免费AI助手的专业级表现 【免费下载链接】DeepSeek-V3.2-Exp-Base 项目地址: https://ai.gitcode.com/hf_mirrors/deepseek-ai/DeepSeek-V3.2-Exp-Base 还在为AI工具的高昂费用而犹豫吗&#xff1f;是否曾因复杂的安装配…

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

UI-TARS-desktop避坑指南:快速部署Qwen3模型的常见问题解决

UI-TARS-desktop避坑指南&#xff1a;快速部署Qwen3模型的常见问题解决 你是否在尝试部署UI-TARS-desktop时遇到了模型无法启动、前端连接失败或日志报错等问题&#xff1f;别担心&#xff0c;你不是一个人。尽管UI-TARS-desktop为用户提供了一个轻量级且功能强大的多模态AI代…

作者头像 李华
网站建设 2026/4/17 22:41:10

Mamba+YOLO优势互补,全面碾压传统YOLO!实现高精度、高速度、低复杂度

觉得YOLO卷无可卷了&#xff1f;AAAI 2025上的Mamba YOLO模型或许可以给你新的启发。这是一款创新的实时目标检测器&#xff0c;结合了Mamba与YOLO两大热门模型&#xff0c;实现了精度与实时性的最优平衡。显然&#xff0c;如此成果得益于MambaYOLO最核心、最根本的优势——兼顾…

作者头像 李华