【微服务】SpringBoot 整合Redis Stack 构建本地向量数据库相似性查询

news2024/12/17 14:42:35

目录

一、前言

二、向量数据库介绍

2.1 什么是向量数据库

2.2 向量数据库特点

2.3 向量数据库使用场景

三、常用的向量数据库解决方案

3.1 Milvus

3.1.1 Milvus是什么

3.1.2 Milvus主要特点

3.2 Faiss

3.2.1 Faiss是什么

3.2.2 Faiss主要特点

3.3 Pinecone

3.3.1 Pinecone是什么

3.3.2 Pinecone主要特点

3.4 Weaviate

3.4.1 Weaviate介绍

3.4.2 Weaviate主要特点

3.5 Redis Stack

3.5.1 Redis Stack介绍

3.5.2 Redis Stack核心模块

3.5.3 Redis Stack主要特点

3.5.4 Redis Stack应用场景

四、Redis向量数据库介绍

4.1 redis向量数据库是什么

4.2 向量检索核心原理

4.2.1 匹配原理

4.2.2 具体实现过程

五、整合springboot 实现向量数据库相似性搜索

5.1 前置准备

5.1.1 docker搭建Redis-Stack

5.1.2 导入maven依赖

5.1.3 获取apikey

5.1.4 添加配置文件

5.2 文本嵌入代码实现过程

5.2.1 添加一个测试接口

5.3 ETL Pipeline

5.3.1 Spring AI ETL 介绍

5.3.2 Spring AI 处理ETL完整过程

5.3.3 Spring AI ETL 技术框架

5.3.3.1 读取器 DocumentReader

5.3.3.2 文档转换器 DocumentTransformer

5.3.3.3 文档写入器 DocumentWriter

5.4 Spring AI 文档读取操作演示

5.4.1 文件读取代码演示

5.5 Spring AI 文档转换操作演示

5.5.1 添加测试接口

5.6 文档存储

5.6.1 导入依赖文件

5.6.2 配置redis信息

5.6.3 增加一个redis的向量数据库配置类

5.6.4 增加嵌入文档接口

5.6.5 增加文档检索接口

六、写在文末


一、前言

AI工具的使用让数据检索的需求场景变得越来越多,也越来越复杂,传统的关系型数据库尽管可以满足日常各类关系数据的存储,但是遇到一些文档类型,非结构化的数据时,其作用和效果就会打折扣,而且数据不仅仅是存储的需要,也需要能够满足数据分析的场景,这种情况下,就可以考虑使用向量数据库了。

二、向量数据库介绍

2.1 什么是向量数据库

向量数据库是一种优化后的数据库系统,专门设计用于高效地存储和检索高维向量数据。这些向量数据通常是从原始数据(如文本、图像、音频等)中提取的特征表示。向量数据库的核心优势在于其能够快速地进行相似性搜索,即找到与给定向量最相似的向量。

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

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

相关文章

种草电商系统APP功能需求开发案例

种草电商系统‌是一种结合了社区互动和电商交易的平台,能看到其他小伙伴分享的各种真实购物心得、超美商品图片和超实用视频,让我们去发现好物。可以随心关注感兴趣的人,跟他们畅聊购物体验,点赞、评论、转发那些心动的分享。其主…

EnumMap:让Java Map更高效的技巧

前言 摘要 内容 什么是EnumMap 如何使用EnumMap EnumMap的实现原理 EnumMap的例子 测试用例 小结 前言 在Java中,枚举类型是一种非常有用的数据类型,它可以用于定义一组固定的常量。枚举类型在很多场景中都有广泛的应用,例如状态码、…

测试工程师八股文05|功能测试、业务测试

一、基础概念 1、软件测试分类 1️⃣按照软件产生的阶段划分 单元测试:针对程序源代码进行测试【开发自测】集成测试:针对模块之间功能交互进行测试系统测试:对整个系统(功能、非功能)进行全面测试验收测试&#xff…

中国计算机学会计算机视觉专委会携手合合信息举办企业交流活动,为AI安全治理打开“新思路”

近期,《咬文嚼字》杂志发布了2024年度十大流行语,“智能向善”位列其中,过去一年时间里,深度伪造、AI诈骗等话题屡次登上热搜,AI技术“野蛮生长”引发公众担忧。今年9月,全国网络安全标准化技术委员会发布了…

《计算机视觉:瓶颈之辩与未来之路》

一、计算机视觉的崛起 计算机视觉是使用计算机模仿人类视觉系统的科学,让计算机拥有类似人类提取、处理、理解和分析图像以及图像序列的能力。它是一个多学科交叉的领域,与机器视觉、图像处理、人工智能、机器学习等领域密切相关。 计算机视觉行业可分为…

Airborne使用教程

1.安装环境 前提条件:系统已安装Ruby 打开终端输入如下命令 gem install airborne 或者在Gemfile添加 gem airborne 然后运行bundle install 2.编写脚本 在项目中新建api_tests_spec.rb文件 以GET接口"https://www.thunderclient.com/welcome"为…

Hadoop其一,介绍本地模式,伪分布模式和全分布搭建

目录 一、Hadoop介绍 二、HDFS的本地模式 三、伪分布模式 四、Hdfs中的shell命令 五、全分布搭建 六、使用Java代码操作HDFS 1、环境准备 2、单元测试(Junit)​编辑 一、Hadoop介绍 Hadoop 分为三部分 : Common、HDFS 、Yarn、MapRe…

【Tomcat】第五站:Servlet容器

Tomcat启动后,获取到项目当中所有的servlet的WebServlet中的配置信息。将配置信息和类对象都写入一个map集合当中。 map就是一个key-value类型的集合。 在MyTomcat中我们获取到了类对象和注解值。 Tomcat与请求连通 1. ServletConfigMapping 1. 创建一个config包…

猫眼浏览器v4.12.1重磅升级,极速、安全、保护全方位提升

猫眼浏览器(Catsxp)是一款经过深度优化的网页浏览器,凭借其创新性的设计理念和卓越的性能表现,正在重新定义现代浏览器的标准。这款基于Chrome内核精心打造的浏览器不仅为用户带来了全方位的网络体验提升,更在保护用户…

Axure原型设计技巧与经验分享

AxureRP作为一款强大的原型设计工具,凭借其丰富的交互设计能力和高保真度的模拟效果,赢得了众多UI/UX设计师、产品经理及开发人员的青睐。本文将分享一些Axure原型设计的实用技巧与设计经验,帮助读者提升工作效率,打造更加流畅、用…

梳理你的思路(从OOP到架构设计)_UML应用:业务内涵的分析抽象表达02

目录 1、举例(二) :西方童话 童话『青蛙王子』 的故事 故事中的概念 2、举例(三) :点餐服务 『 餐馆点餐服务』 的分析步骤: 1、举例(二) :西方童话 童话『青蛙王子』 的故事 从前有一位美丽的公主,喜欢玩金球。…

DevExpress WPF中文教程:Grid - 如何移动和调整列大小?(一)

DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…

OpenIPC开源FPV之Adaptive-Link天空端代码解析

OpenIPC开源FPV之Adaptive-Link天空端代码解析 1. 源由2. 框架代码3. 报文处理3.1 special报文3.2 普通报文 4. 工作流程4.1 Profile 竞选4.2 Profile 研判4.3 Profile 应用 5. 总结6. 参考资料7. 补充资料7.1 RSSI 和 SNR 的物理含义7.2 信号质量加权的理论依据7.3 实际应用中…

23.DDD与微服务

学习视频来源:DDD独家秘籍视频合集 https://space.bilibili.com/24690212/channel/collectiondetail?sid1940048&ctype0 文章目录 DDD与微服务的关系1. DDD可以用微服务实现,也可以不用微服务实现2. DDD是微服务拆分的必须参考项之一3. 微服务架构…

最新全开源IM即时通讯系统源码(PC+WEB+IOS+Android)部署指南

全开源IM(即时通讯)系统源码部署是一个复杂但系统的过程,涉及多个组件和步骤。以下是一个详细的部署指南,旨在帮助开发者或系统管理员成功部署一个全开源的IM系统,如OpenIM。      IM即时通讯系统源码准备工作   …

PVE系统下——OpenWRT一键扩容脚本(x86下EXT4SquashFS)

扩容了x86上的 OpenWrt 根分区和文件系统。 1.PVE 上增加硬盘大小 2.执行脚本 安装依赖 opkg update opkg install parted losetup resize2fs下载脚本并一键执行 wget -U "" -O expand-root.sh "https://openwrt.org/_export/code/docs/guide-user/advanced…

Midjourney教程之生成同一角色的不同姿势和服装

今天给大家介绍的是在 Midjourney 中如何创建同一个角色的不同姿势。这个功能是大家期待已久的,现在它已经正式可用了。 这个功能能够创建与原始图像相似的角色。"Character Reference" 功能类似于 "Style Reference",但侧重于角色…

gitlab仓库API操作

几年没接触gitlab了,新版本装完以后代码提交到默认的main分支,master不再是主分支 项目有几十个仓库,研发提交代码后仓库地址和之前的发生了变化 先修改Group的默认分支,不会影响已存在的项目 修改gitlab全局的默认分支 这就引…

aws(学习笔记第十七课) SQS Amazon Simple Queue Service服务

aws(学习笔记第十七课) SQS Amazon Simple Queue Service服务 学习内容: 使用SQS Amazon Simple Queue Service服务整体代码(nodejs的通常工程)代码动作 1. 使用SQS Amazon Simple Queue Service服务 利用应用程序来学习SQS 创建S3$ aws s…

Swin Transformer:用Transformer实现CNN多尺度操作

文本是关于Swin Transformer基础知识的了解 论文:https://arxiv.org/pdf/2103.14030 项目:https://github. com/microsoft/Swin-Transformer. 实现一个Swin Transformer:Swin Transformer模型具体代码实现-CSDN博客 Swin Transformer mlp…