docker安装部署PostgreSQL带有pgvector扩展向量数据(高维数组)

1.拉取镜像

# 或者已经编译了x86的postgis、pgvector的18.1dockerpull registry.cn-hangzhou.aliyuncs.com/qiluo-images/postgres-with-gis:18.1# arrch64架构dockerpull registry.cn-hangzhou.aliyuncs.com/qiluo-images/linux_arm64_postgres-with-gis:18.1

2.创建一个 postgres 容器并启动

dockerrun -d\--name postgres-gis\-ePOSTGRES_PASSWORD='Yo5WYypu0mCCheOU'\-p5432:5432\-v /data/postgres:/var/lib/postgresql\registry.cn-hangzhou.aliyuncs.com/qiluo-images/postgres-with-gis:18.1

3.执行PostGIS

create extension postgis;create extension postgis_topology;create extension fuzzystrmatch;create extension postgis_tiger_geocoder;create extension address_standardizer;

4.执行pgvector扩展向量

CREATE EXTENSION IF NOT EXISTS vector;

5.验证 PostGIS 安装:

# 在 PostgreSQL 命令行中执行SELECT PostGIS_Version();SELECT PostGIS_Full_Version();

6.验证 pgvector安装:

SELECT * FROM pg_extension WHERE extname='vector';

pgvector 扩展:向量数据库功能

什么是 pgvector?
pgvector 是一个 PostgreSQL 扩展,它让 PostgreSQL 能够存储、索引和查询向量数据(高维数组),主要用于:
核心功能
存储向量数据 - 存储多维浮点数数组
向量相似性搜索 - 查找最相似的向量
AI/ML 集成 - 与机器学习模型配合使用

主要用途

  1. AI 嵌入向量存储
-- 存储 OpenAI、BERT 等模型的文本嵌入 CREATE TABLE documents(idBIGSERIAL PRIMARY KEY, content TEXT, embedding VECTOR(1536), -- OpenAI 的维度 created_at TIMESTAMP);-- 插入向量数据 INSERT INTO documents(content, embedding)VALUES('这是一个文档','[0.1, 0.2, 0.3, ...]');
  1. 相似性搜索
-- 查找最相似的文档 SELECT id, content, embedding<=>'[0.1, 0.2, 0.3]'AS distance -- 余弦距离 FROM documents ORDER BY distance LIMIT10;
  1. 推荐系统
-- 基于向量相似性的产品推荐 CREATE TABLE products(idSERIAL PRIMARY KEY, name TEXT, features VECTOR(128), -- 产品特征向量 category TEXT);-- 查找相似产品 SELECT p2.name, p1.features<=>p2.features AS similarity FROM products p1 CROSS JOIN products p2 WHERE p1.id=123AND p2.id!=123ORDER BY similarity LIMIT5;
  1. 支持的距离度量
    pgvector 支持多种距离计算:
--1. 欧几里得距离(L2距离) SELECT embedding<->'[0.1, 0.2, 0.3]'FROM items;--2. 余弦距离(1 - 余弦相似度) SELECT embedding<=>'[0.1, 0.2, 0.3]'FROM items;--3. 内积距离 SELECT embedding<#> '[0.1, 0.2, 0.3]' FROM items;
  1. 索引类型
    IVFFlat 索引(推荐)
-- 创建 IVFFlat 索引(适合大规模数据) CREATE INDEX ON items USING ivfflat(embedding vector_cosine_ops)WITH(lists=100);-- 聚类数量 -- 用于不同距离度量 USING ivfflat(embedding vector_l2_ops)-- 欧几里得距离 USING ivfflat(embedding vector_cosine_ops)-- 余弦距离 USING ivfflat(embedding vector_ip_ops)-- 内积距离
  1. HNSW 索引(更精确,稍慢)
-- 创建 HNSW 索引(精度更高) CREATE INDEX ON items USING hnsw(embedding vector_cosine_ops)WITH(m=16, ef_construction=64);

实际应用场景

场景 1:语义搜索

# Python 示例:结合 OpenAI 嵌入importopenaiimportpsycopg2frompgvector.psycopg2importregister_vector# 生成文本嵌入response=openai.Embedding.create(model="text-embedding-ada-002",input="如何学习 PostgreSQL")embedding=response['data'][0]['embedding']# 存储到 PostgreSQLconn=psycopg2.connect("dbname=test user=postgres")register_vector(conn)cur=conn.cursor()cur.execute("INSERT INTO documents (content, embedding) VALUES (%s, %s)",("如何学习 PostgreSQL",embedding))# 语义搜索search_query="PostgreSQL 教程"search_embedding=get_embedding(search_query)# 获取查询的嵌入cur.execute(""" SELECT content, embedding <=> %s AS distance FROM documents ORDER BY distance LIMIT 5 """,(search_embedding,))场景2:图像相似性搜索 sql--存储图像特征向量 CREATE TABLE images(idSERIAL PRIMARY KEY,image_path TEXT,features VECTOR(512),--ResNet/VGG 等模型提取的特征 tags TEXT[]);--查找相似图像 SELECT image_path,tags,features<=>(SELECT features FROM images WHEREid=123)AS similarity FROM images WHEREid!=123ORDER BY similarity LIMIT10;

场景 3:用户画像匹配

-- 基于用户行为向量的推荐 CREATE TABLE user_profiles(user_id INT PRIMARY KEY, behavior_vector VECTOR(256), -- 用户行为向量 preferences JSONB);-- 查找相似用户(用于协同过滤) SELECT u2.user_id, u1.behavior_vector<=>u2.behavior_vector AS similarity FROM user_profiles u1 JOIN user_profiles u2 ON u1.user_id!=u2.user_id WHERE u1.user_id=1001ORDER BY similarity LIMIT10;

性能优化技巧

--1. 设置合适的索引参数 CREATE INDEX ON items USING ivfflat(embedding vector_cosine_ops)WITH(lists=1000);-- 对于大数据集增加 lists 值 --2. 使用分区表 CREATE TABLE embeddings_partitioned(idBIGINT, embedding VECTOR(1536), created_date DATE)PARTITION BY RANGE(created_date);--3. 调整搜索参数 SET ivfflat.probes=10;-- 增加以提高准确性(默认1) SET hnsw.ef_search=100;-- HNSW 搜索参数 与其他工具的集成 与 LangChain 集成 - 用于 AI 应用 与 OpenAI API 集成 - 存储和查询嵌入 与 Hugging Face 集成 - 使用开源模型 与 MLflow 集成 - 模型特征存储

优势

无需额外基础设施 - 直接在 PostgreSQL 中使用
ACID 保证 - 完整的数据库事务支持
SQL 接口 - 使用熟悉的 SQL 语法
与其他数据一起查询 - 向量 + 结构化数据联合查询
开源免费 - MIT 许可证

简单总结

pgvector = PostgreSQL + 向量数据库能力
把 PostgreSQL 变成了一个既能处理传统关系型数据,又能处理 AI 向量数据的多模数据库。特别适合需要同时处理结构化数据和 AI 嵌入的应用场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1196510.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【大数据毕设全套源码+文档】基于python的爬虫与文本挖掘的网络舆情监控系统设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

宏智树 AI 太懂学术!AIPPT 一键搞定开题 / 答辩 / 汇报,告别 PPT 制作内耗

做学术 PPT 还在熬大夜排版&#xff1f;开题报告 PPT 逻辑混乱被导师打回&#xff0c;论文答辩 PPT 数据图表粗糙拉低专业度&#xff0c;工作汇报 PPT 写成流水账抓不住重点&#xff1f;相信不少高校师生和科研人都有过这样的 PPT 制作内耗&#xff0c;明明核心研究内容很扎实&…

宏智树 AI:终结课程论文 “无效内卷”,小白也能写出高分范本

作为深耕论文写作科普的教育博主&#xff0c;每到学期末&#xff0c;后台就被 “课程论文怎么写” 的求助刷屏&#xff1a;“翻遍教材找不到合适选题”“文献堆了几百篇却不会梳理”“熬了三天写的初稿&#xff0c;导师说逻辑混乱要重写”。其实课程论文不是 “凑字数交差”&am…

无线网络仿真:无线网络基础_(19).网络协议栈仿真

网络协议栈仿真 在无线网络仿真中&#xff0c;网络协议栈的仿真是一个非常重要的环节。网络协议栈决定了数据在不同网络层之间的传输和处理方式。通过对网络协议栈的仿真&#xff0c;我们可以深入理解网络协议的工作原理&#xff0c;优化网络性能&#xff0c;以及测试新的协议…

机器学习:基于python新闻推荐系统 热点新闻分析 可视化分析 协同过滤推荐算法 Django框架 冷启动 推荐算法 计算机毕业设计(源码+文档)

博主介绍&#xff1a;✌全网粉丝10W&#xff0c;前互联网大厂软件研发、集结硕博英豪成立软件开发工作室&#xff0c;专注于计算机相关专业项目实战6年之久&#xff0c;累计开发项目作品上万套。凭借丰富的经验与专业实力&#xff0c;已帮助成千上万的学生顺利毕业&#xff0c;…

AI应用架构师避坑:量子计算与AI协同中的资源竞争问题

AI应用架构师避坑:量子计算与AI协同中的资源竞争问题 1. 引入:当“量子加速”变成“量子堵车”——一个架构师的真实困境 凌晨三点,张磊盯着监控屏幕上的红色预警,揉了揉发涩的眼睛。作为某AI公司的资深架构师,他正带领团队搭建量子增强型生成式AI系统:用量子计算的并行…

为什么说“ChatGPT的思考、判断、归纳、回答最具有人类智慧特征”?Why Is It Said “ChatGPT the Most Human-Like Wisdom Traits“?

为什么说“ChatGPT的思考、判断、归纳、回答最具有人类智慧特征”&#xff1f;这句话的提出&#xff0c;源于一种深刻的观察&#xff1a;在与ChatGPT的互动中&#xff0c;人们常会感受到其回应的结构、逻辑与克制&#xff0c;仿佛触及了某种“理想化”的人类智慧形态。但这并非…

学术写作新选择:6个AI优化平台评测,智能润色改善论文逻辑与流畅性

开头总结工具对比&#xff08;技能4&#xff09; &#xfffd;&#xfffd; 为帮助学生们快速选出最适合的AI论文工具&#xff0c;我从处理速度、降重效果和核心优势三个维度&#xff0c;对比了6款热门网站&#xff0c;数据基于实际使用案例&#xff1a; 工具名称 处理速度 降…

基于提供的镜像构建PostGIS、pgvector 的 PostgreSQL 18镜像的Dockerfile

编辑 Dockerfile # 使用原始镜像作为基础 FROM registry.cn-hangzhou.aliyuncs.com/qiluo-images/postgres:latest# 设置环境变量避免安装过程中交互式提示 ENV DEBIAN_FRONTENDnoninteractive# 安装 PostGIS 和相关依赖 RUN apt-get update && \apt-get install -y --…

【大数据毕设源码分享】基于springboot+Hadoop的豆瓣电子图书推荐的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

AI改写技术实测:6款学术工具如何高效提升论文语言表达水平

开头总结工具对比&#xff08;技能4&#xff09; &#xfffd;&#xfffd; 为帮助学生们快速选出最适合的AI论文工具&#xff0c;我从处理速度、降重效果和核心优势三个维度&#xff0c;对比了6款热门网站&#xff0c;数据基于实际使用案例&#xff1a; 工具名称 处理速度 降…

python: excel 两个工作表中的员工比对

检测系统中的英文字体:import matplotlib.font_manager as fm# 列出系统中所有支持中文的字体 fonts = fm.findSystemFonts(fontpaths=None, fontext=ttf) chinese_fonts = [] for font in fonts:try:font_prop = fm.…

[DASCTF Oct X 吉林工师 欢迎来到魔法世界~]《魔法少女雪殇——光与暗的对决》——剧场版的一些思路

这道题目是buuctf的第十八页的一道题 查了一下全网 比赛的时候0解 现在也没wp 博主刚入门 能力有限 仅能提供部分思路 欢迎各位师傅交流 题目附件给出magic.E01 火眼证据分析打开 在新加卷发现一个与题目同名文件夹 里…

【大数据毕设源码分享】基于springboot吉林省农村产权交易与数据可视化平台的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

MySQL与openGauss不兼容点对比表

MySQL与openGauss不兼容点对比表特性类别MySQL语法/功能openGauss语法/功能不兼容说明自增字段AUTO_INCREMENTGENERATED BY DEFAULT AS IDENTITYMySQL使用AUTO_INCREMENT关键字&#xff0c;openGauss使用IDENTITY列属性字符串类型TINYTEXT, MEDIUMTEXT, LONGTEXTTEXT (统一类型…

【大数据毕设源码分享】基于Python的热门微博数据可视化分析(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

论文语言优化指南:通过6款AI工具实现自动化、高精准度的学术润色

开头总结工具对比&#xff08;技能4&#xff09; &#xfffd;&#xfffd; 为帮助学生们快速选出最适合的AI论文工具&#xff0c;我从处理速度、降重效果和核心优势三个维度&#xff0c;对比了6款热门网站&#xff0c;数据基于实际使用案例&#xff1a; 工具名称 处理速度 降…

【车载audio开发】【Qualcomm PAL 详解 6】【PAL 总体架构与模块交互指南】

PAL 总体架构与模块交互指南 1. 宏观架构&#xff1a;PAL 的世界观 欢迎来到 Qualcomm PAL (Platform Audio Layer) 的世界。为了更好地理解&#xff0c;我们继续使用餐厅的比喻&#xff1a; Android HAL (Client): 顾客。负责点菜&#xff08;提需求&#xff09;。Stream (…

【大数据毕设源码分享】springboot基于大数据的音乐数据分析系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

2026最新强韧柔顺洗发水国货品牌top5推荐!国内优质洗发水企业权威榜单发布,科学护发方案助力解决多重头皮困扰

当代生活节奏加快,压力、熬夜、环境污染等因素导致头皮亚健康问题日益普遍,宝妈、油头人群、干枯受损发质及女性脱发人群对洗护产品的功效性与安全性需求显著提升。据中国日用化工协会2025年度行业报告显示,国内防脱…