【微服務】SpringBoot 整合Redis Stack 構建本地向量數據庫相似性查詢

目錄

一、前言

二、向量數據庫介紹

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.pswp.cn/web/63363.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/63363.shtml
英文地址,請注明出處:http://en.pswp.cn/web/63363.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【數據庫】大二數據庫復習范圍 (快速版)幫助你快速復習數據庫

第一章 1. 信息=數據+語義 2:數據庫管理系統(database management system, DBMS) 3. 數據庫系統(database system, DBS)由數據庫、數據庫用戶、計算機硬件系統和計算機軟件系統等幾部分組成 4. 數據模型按應用層次可分為概念模型、邏輯模型和物理模型。 5.每個二維表…

FMIKit-Simulink 常見問題解決方案

將解壓后的文件夾添加到 MATLAB 路徑中: addpath(fullfile(pwd, FMIKit-Simulink-3.1));初始化 FMIKit: FMIKit.initialize(); 設置求解器rtwsfcnfmi.tlc、或grtfmi.tlc再CtrlB即可。 幫助文檔可查看導出FUM和導入FMU。 FMIKit-Simulink-3.1\html\index…

UE UMG 多級彈出菜單踩坑

多級彈出菜單 https://www.bilibili.com/video/BV1ub411J7nA 運行時添加 widget 的方法 create widget 然后 add child 到某個組件,比如 canvas 運行時修改 widget 位置的方法 set widget slot position 用起來沒效果 懷疑是因為我沒有傳入 slot 但是暫時不知…

sunset: midnight

https://www.vulnhub.com/entry/sunset-midnight,517/ 主機發現端口掃描 探測存活主機,8是靶機 nmap -sP 192.168.56.0/24 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-05 16:49 CST Nmap scan report for 192.168.56.1 …

【PyTorch】動態調整學習率 torch.optim.lr_scheduler.StepLR 調度器

文章目錄 1. torch.optim.lr_scheduler.StepLR 官方文檔詳解2. 使用示例2.1 官方提供使用示例2.2 自己寫代碼測試方法2.2.1 get_last_lr() 方法2.2.2 state_dict() 方法2.2.3 load_state_dict() 保存和加載調度器 3. 思考3.1 為什么需要state_dict()3.2 get_lr() 與 get_last_l…

伊克羅德與九科信息共同發布RPA+AI智能機器人解決方案

12月12日,伊克羅德信息在上海舉辦“創見AI,邁進智能化未來——科技賦能零售電商”活動,與九科信息、亞馬遜云科技共同探討與分享,融合生成式AI技術和智能自動化(RPA,Robotic Process Automation)在電商零售…

hutool一些典型的方法使用筆記

hutool一些典型的方法使用筆記 1 克隆1.1 深克隆 2類型轉換2.1其他類型轉換為字符串2.2 轉換為日期對象2.3 數組轉集合2.4 Unicode和字符串轉換2.5 數字轉中文 文檔地址:https://blog.csdn.net/dxjren/article/details/144468399 1 克隆 1.1 深克隆 定義一個實體類…

QT實戰經驗總結 連載中

QT實戰經驗總結 在看書系統學習后,就開始實戰了,會遇到很多問題1.信號和槽的思考2.在python 或 C 代碼中,對 QML 代碼中控件的調用關于在一個窗口上不斷打開新窗口 在看書系統學習后,就開始實戰了,會遇到很多問題 pyt…

從 CephFS 到 JuiceFS:同程旅行億級文件存儲平臺構建之路

隨著公司業務的快速發展,同程旅行的非結構化的數據突破 10 億,在 2022 年,同程首先完成了對象存儲服務的建設。當時,分布式文件系統方面,同程使用的是 CephFS,隨著數據量的持續增長,CephFS 的高…

固定資產分類,提升資產盤活效益

固定資產是企業長期使用的重要資源,涵蓋范圍廣、種類多,不同的資產需要針對性管理。通過科學的分類與高效的盤活策略,不僅可以優化資源配置,還能提升企業資產的利用效率和經濟效益。以下將詳細解析固定資產的分類方式和盤活效益的…

富途證券C++面試題及參考答案

C++ 中堆和棧的區別 在 C++ 中,堆和棧是兩種不同的內存區域,它們有許多區別。 從內存分配方式來看,棧是由編譯器自動分配和釋放的內存區域。當一個函數被調用時,函數內的局部變量、函數參數等會被壓入棧中,這些變量的內存空間在函數執行結束后會自動被釋放。例如,在下面的…

【字符串匹配算法——BF算法】

🌈個人主頁: Aileen_0v0 🔥熱門專欄: 華為鴻蒙系統學習|計算機網絡|數據結構與算法 ?💫個人格言:“沒有羅馬,那就自己創造羅馬~” 文章目錄 BF算法介紹及過程演示代碼實現過程下節預告KMP算法利用next數組存儲子串中j回退的位置(…

Linux 文件系統目錄結構及其簡要介紹

Hello! 親愛的小伙伴們,大家好呀(Smile~)!我是 H u a z z i Huazzi Huazzi,歡迎觀看本篇博客,接下來讓我們一起來學習一下Linux 文件系統目錄結構吧!祝你有所收獲! 本篇博客的目錄&a…

小米準備入局Nas?Nas究竟是啥?能干啥?

一開頭就來了個三連問:小米準備入局Nas?Nas究竟是啥?Nas能干啥? 好像這段時間Nas這個詞頻頻出現,但很多小伙伴都不知道這個是什么設備。首先咱們來解決一下名詞Nas是什么意思。 什么是Nas? 為了盡可能解釋…

基于Socket實現客戶端和服務端的Tcp通信(C#)

0.前言 使用C#和Unity實現復刻Liar’s bar中的功能 軟件開發大作業 本系列文章用于記錄與分享開發過程中使用到的知識點,以及常見錯誤 本文主要描述有關網絡編程的內容 目錄 0.前言1.使用Socket搭建Server1.1Server端的Socket連接1.2 Server端接收Client的信息1.3…

【mysql】如何查看大表記錄行數

目錄 1. 使用 ANALYZE TABLE 和 SHOW TABLE STATUS2. 查詢 INFORMATION_SCHEMA 表3. 使用索引統計信息4. 維護行數緩存5. 使用分區計數 1. 使用 ANALYZE TABLE 和 SHOW TABLE STATUS 1.ANALYZE TABLE 可以更新表的統計信息,然后使用 SHOW TABLE STATUS 來查看估算的…

文件斷點續傳(視頻播放,大文件下載)

客戶端每次請求取大文件部分數據。 瀏覽器播放mp4視頻時,會首先傳Range消息頭,檢測到206狀態碼,和Content-Range,Accept-Ranges 會自動請求余下數據。后端需要在文件任意偏移量取數據。 參考: springboot項目實現斷…

游戲AI實現-尋路算法(A*)

A*(A-star)是一種圖遍歷和尋路算法,由于其完整性、最優性和最佳效率,它被用于計算機科學的許多領域。給定一個加權圖、一個源節點和一個目標節點,該算法將找到從源到目標的最短路徑(相對于給定的權重&#…

any/all 子查詢優化規則的原理與解析 | OceanBase查詢優化

背景 在通常情況下,當遇到包含any/all子查詢的語句時,往往需要遵循嵌套執行的方式,因此其查詢效率較低。Oceanbase中制定了相應的any/all子查詢優化規則,能夠能夠識別并優化符合條件的any/all子查詢,從而有效提升查詢…

[HNOI2002] 營業額統計 STL - set集合

文章目錄 [HNOI2002] 營業額統計題目描述樣例輸入 #1樣例輸出 #1 提示題解相關知識點set [HNOI2002] 營業額統計 STL - set解題 題目描述 Tiger 最近被公司升任為營業部經理,他上任后接受公司交給的第一項任務便是統計并分析公司成立以來的營業情況。 Tiger 拿出…