springboot之集成Elasticsearch

目錄
  • 二、Elasticsearch 是什么?
  • 三、Elasticsearch 安裝
  • 四、Springboot 集成 Elasticsearch 的方式
  • 五、創建項目集成 Elasticsearch
    • 2.創建 Spring Initializr 項目 es
      • (3).新建實體類 User
      • (4).新建 dao 接口類 UserRepository
      • (5).新建服務接口類 UserService
      • (6).新建服務實現類 UserServiceImpl
      • (7).新建控制類 UserController

一、前言

網上 springboot 集成 Elasticsearch 的文章很多,但隨著 springboot 和 Elasticsearch 版本的不斷升級,絕大多數文章使用的集成方式和調用的方法已經過時,幾乎找不到能真正適用最新 springboot 版本和最新 Elasticsearch 版本的文章。

本文正是基于最新 springboot 版本和最新 Elasticsearch 版本實現了集成。

二、Elasticsearch 是什么?

Elasticsearch(ES) 是一個基于 Lucene 的搜索服務器。它提供了一個分布式多用戶能力的全文搜索引擎,基于 RESTful web 接口。Elasticsearch 是用 Java 語言開發的,并作為 Apache 許可條款下的開放源碼發布,是一種流行的企業級搜索引擎。Elasticsearch 用于云計算中,能夠達到實時搜索、穩定、可靠、快速、安裝使用方便。官方客戶端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby 和許多其他語言中都是可用的。根據 DB-Engines 的排名顯示,Elasticsearch 是最受歡迎的企業搜索引擎,其次是 Apache Solr,也是基于 Lucene。

三、Elasticsearch 安裝

見 CentOS7和8下安裝Elasticsearch 和 ElasticSearch ik分詞器的安裝使用 。

四、Springboot 集成 Elasticsearch 的方式

1.TransportClient

TransportClient 在 Elasticsearch 7.0.0 中已被棄用,取而代之的是 Java High Level REST Client,并將在 Elasticsearch 8.0中刪除。在項目中不再建議使用,詳見

官方鏈接: https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-api.html#java-api

image

2.Java REST Client

Java REST Client 在 Elasticsearch 7.15.0 中已棄用,取而代之的是 Java API Client。在項目中不再建議使用,詳見

官方鏈接: https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/index.html

image

3.Java API Client

官方推薦使用的方式。詳見

官方鏈接: https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/current/index.html

4.Spring Data Elasticsearch

Spring Data Elasticsearch 項目提供了與 Elasticsearch 搜索引擎的集成。Spring Data Elasticsearch 的關鍵功能領域是一個以 POJO 為中心的模型,用于與 Elastichsearch 文檔進行交互,并輕松編寫存儲庫數據訪問層。

本文正是基于 Spring Data Elasticsearch 方式實現 springboot 集成 Elasticsearch。

五、創建項目集成 Elasticsearch

1.項目說明

新建 Spring Initializr 項目 es,項目下新建 controller、entity、dao、service、impl 類,實現對 Elasticsearch 的 CRUD 操作。

項目目錄結構:

image

2.創建 Spring Initializr 項目 es

image

(1).添加依賴

添加依賴,如果已按截圖操作,pom.xml 的內容會自動生成:

(2).添加配置

application.yml 文件中添加如下配置:

(3).新建實體類 User

為減少不必要的代碼,引入 lombok 依賴:

實體類代碼如下:

(4).新建 dao 接口類 UserRepository
(5).新建服務接口類 UserService
(6).新建服務實現類 UserServiceImpl
(7).新建控制類 UserController

3.啟動服務并測試

啟動服務后,瀏覽器輸入:http://localhost:8080/user/insert,會新增一條 id 為 “1” 的記錄:

image

瀏覽器輸入:http://localhost:8080/user/delete,會刪除一條 id 為 “1” 的記錄:

image

瀏覽器輸入:http://localhost:8080/user/getAll,會顯示所有記錄:

image

著作權歸作者所有,轉載或內容合作請聯系作者

喜歡的朋友記得點贊、收藏、關注哦!!!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/71173.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/71173.shtml
英文地址,請注明出處:http://en.pswp.cn/web/71173.shtml

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

相關文章

[Lc滑動窗口_1] 長度最小的數組 | 無重復字符的最長子串 | 最大連續1的個數 III | 將 x 減到 0 的最小操作數

目錄 1. 長度最小的字數組 題解 代碼 ?2.無重復字符的最長子串 題解 代碼 3.最大連續1的個數 III 題解 代碼 4.將 x 減到 0 的最小操作數 題解 代碼 1. 長度最小的字數組 題目鏈接:209.長度最小的字數組 題目分析: 給定一個含有 n 個 正整數 的數組…

數據集筆記:新加坡 地鐵(MRT)和輕軌(LRT)票價

數據連接 data.gov.sg 2024 年 12 月 28 日起生效的新加坡地鐵票價 該數據集包含 MRT 和 LRT 票價的信息,包括: 票價類型(Fare Type):成人票、學生票、老年人票、殘障人士票等。適用時間(Applicable Tim…

湘潭大學計算機復試詳細攻略(調劑)

一,寫在前面的話 ① 首先,能完成考試初試來到這里的都是勇士。不管結果如何,不管成績如何。我都在這里真心的祝福你以后一帆風順。 ② 目前學歷貶值嚴重,如果是成績不理想的話,我建議能工作就去工作,工作不…

【前端基礎】Day 3 CSS-2

目錄 1. Emmet語法 1.1 快速生成HTML結構語法 1.2 快速生成CSS樣式語法 2. CSS的復合選擇器 2.1 后代選擇器 2.2 子選擇器 2.3 并集選擇器 2.4 偽類選擇器 2.4.1 鏈接偽類選擇器 2.4.2 focus偽類選擇器 2.5 復合選擇器總結 3. CSS的元素顯示模式 3.1 什么是元素顯示…

不同數據類型在數據庫和編程語言之間的對應關系表

不同數據類型在數據庫和編程語言之間的對應關系表 MySql 與 C# MySqlC#varcharstringbigintlongbigint unsignedulongintintint unsigneduintsmallintshortsmallint unsignedushortVARCHAR(36)GuidsmalldatetimeDateTimedateDateTimedatetimeDateTimetimestampDateTimefloatf…

RabbitMQ操作實戰

1.RabbitMQ安裝 RabbitMQ Windows 安裝、配置、使用 - 小白教程-騰訊云開發者社區-騰訊云下載erlang:http://www.erlang.org/downloads/https://cloud.tencent.com/developer/article/2192340 Windows 10安裝RabbitMQ及延時消息插件rabbitmq_delayed_message_exch…

DeepSeek教unity------UI元素長按響應

主要功能說明: ?長按檢測:通過記錄指針按下的時間,判斷是否達到 longClickTime,從而觸發長按事件。?狀態管理:使用 StateEnum 枚舉管理點擊項的當前狀態(未按下、按下等待長按、長按已觸發)。…

【北京迅為】itop-3568 開發板openharmony鴻蒙燒寫及測試-第2章OpenHarmony v3.2-Beta4版本測試

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工藝,搭載一顆四核Cortex-A55處理器和Mali G52 2EE 圖形處理器。RK3568 支持4K 解碼和 1080P 編碼,支持SATA/PCIE/USB3.0 外圍接口。RK3568內置獨立NPU,可用于輕量級人工…

stm32hal庫尋跡+藍牙智能車(STM32F103C8T6)

簡介: 這個小車的芯片是STM32F103C8T6,其他的芯片也可以照貓畫虎,基本配置差不多,要注意的就是,管腳復用,管腳的特殊功能,(這點不用擔心,hal庫每個管腳的功能都會給你羅列,很方便的.)由于我做的比較簡單,只是用到了幾個簡單外設.主要是由帶霍爾編碼器電機的車模,電機…

SQL命令詳解之操作數據庫

操作數據庫 SQL是用于管理和操作關系型數據庫的標準語言。數據庫操作是SQL的核心功能之一,主要用于創建、修改和刪除數據庫對象,如數據庫、表、視圖和索引等。以下是SQL中常見的數據庫操作命令及其功能簡介: 1. 查詢數據庫 查詢所有的數據庫…

Go紅隊開發—編解碼工具

文章目錄 開啟一個項目編解碼工具開發Dongle包Base64編解碼摩斯密碼URL加解密AES加解密 MD5碰撞工具開發 開啟一個項目 這作為補充內容,可忽略直接看下面的編解碼: 一開始用就按照下面的步驟即可 1.創建一個文件夾,你自己定義名字(建議只用…

Starrocks入門(二)

1、背景:考慮到Starrocks入門這篇文章,安裝的是3.0.1版本的SR,參考:Starrocks入門-CSDN博客 但是官網的文檔,沒有對應3.0.x版本的資料,卻有3.2或者3.3或者3.4或者3.1或者2.5版本的資料,不要用較…

工程化與框架系列(10)--微前端架構

微前端架構 🏗? 微前端是一種將前端應用分解成更小、更易管理的獨立部分的架構模式。本文將詳細介紹微前端的核心概念、實現方案和最佳實踐。 微前端概述 🌟 💡 小知識:微前端的核心理念是將前端應用分解成一系列獨立部署、松耦…

SwiftUI之狀態管理全解析

文章目錄 引言一、`@State`1.1 基本概念1.2 初始化與默認值1.3 注意事項二、`@Binding`2.1 基本概念2.2 初始化與使用2.3 注意事項三、`@ObservedObject`3.1 基本概念3.2 初始化與使用3.3 注意事項四、`@EnvironmentObject`4.1 基本概念4.2 初始化與使用4.3 注意事項五、`@Stat…

Redis 高可用性:如何讓你的緩存一直在線,穩定運行?

🎯 引言:Redis的高可用性為啥這么重要? 在現代高可用系統中,Redis 是一款不可或缺的分布式緩存與數據庫系統。無論是提升訪問速度,還是實現數據的高效持久化,Redis 都能輕松搞定。可是,當你把 …

面試題:說一下你對DDD的了解?

面試題:說一下你對DDD的了解? 在面試中,關于 DDD(領域驅動設計,Domain-Driven Design) 的問題是一個常見的技術考察點。DDD 是一種軟件設計方法論,旨在通過深入理解業務領域來構建復雜的軟件系統。以下是一個清晰、詳細的回答模板,幫助你在面試中脫穎而出: DDD 的定義…

Redis---緩存穿透,雪崩,擊穿

文章目錄 緩存穿透什么是緩存穿透?緩存穿透情況的處理流程是怎樣的?緩存穿透的解決辦法緩存無效 key布隆過濾器 緩存雪崩什么是緩存雪崩?緩存雪崩的解決辦法 緩存擊穿什么是緩存擊穿?緩存擊穿的解決辦法 區別對比 在如今的開發中&…

Android Logcat 高效調試指南

工具概覽 Logcat 是 Android SDK 提供的命令行日志工具&#xff0c;支持靈活過濾、格式定制和實時監控&#xff0c;官方文檔詳見 Android Developer。 基礎用法 命令格式 [adb] logcat [<option>] ... [<filter-spec>] ... 執行方式 直接調用&#xff08;通過ADB守…

【定昌Linux系統】部署了java程序,設置開啟啟動

將代碼上傳到相應的目錄&#xff0c;并且配置了一個.sh的啟動腳本文件 文件內容&#xff1a; #!/bin/bash# 指定JAR文件的路徑&#xff08;如果JAR文件在當前目錄&#xff0c;可以直接使用文件名&#xff09; JAR_FILE"/usr/local/java/xs_luruan_client/lib/xs_luruan_…

Java 8 中,可以使用 Stream API 和 Comparator 對 List 按照元素對象的時間字段進行倒序排序

文章目錄 引言I 示例對象II List 按時間字段倒序排序: 使用 `Stream` 和 `Comparator` 排序方法 1:使用 `Comparator.comparing`方法 2:使用 `Comparator.reversed`方法 3:自定義 `Comparator`輸出結果III 注意事項**時間字段類型**:**空值處理**:IV 總結引言 案例:在線用…