SpringBoot集成ElasticSearch實(shí)現(xiàn)搜索功能
引言
在現(xiàn)代Web應(yīng)用中,搜索功能是一個(gè)非常重要的特性。ElasticSearch是一個(gè)分布式的搜索和分析引擎,能夠快速地存儲(chǔ)、搜索和分析大量數(shù)據(jù)。Spring Data ElasticSearch提供了與ElasticSearch集成的簡(jiǎn)便方式。本文將介紹如何在Spring Boot中集成ElasticSearch,實(shí)現(xiàn)基本的搜索功能。
什么是ElasticSearch
ElasticSearch是一個(gè)基于Lucene的開(kāi)源搜索引擎,支持全文搜索、結(jié)構(gòu)化搜索和分析,并能夠處理海量數(shù)據(jù)。它提供了一個(gè)分布式多租戶(hù)能力的全文搜索引擎,具有高度的可擴(kuò)展性和實(shí)時(shí)性。
添加依賴(lài)
在Spring Boot項(xiàng)目中添加ElasticSearch的依賴(lài)。在pom.xml文件中添加以下依賴(lài)項(xiàng):
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
配置ElasticSearch
在application.properties文件中配置ElasticSearch連接信息:
spring.elasticsearch.rest.uris=http://localhost:9200
創(chuàng)建實(shí)體類(lèi)
創(chuàng)建一個(gè)名為Article.java的實(shí)體類(lèi):
package com.example.demo;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
@Document(indexName = "articles")
public class Article {
@Id
private String id;
private String title;
private String content;
// Getters and setters
}
創(chuàng)建Repository接口
創(chuàng)建一個(gè)名為ArticleRepository.java的接口,繼承ElasticsearchRepository:
package com.example.demo;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import java.util.List;
public interface ArticleRepository extends ElasticsearchRepository<Article, String> {
List<Article> findByTitleContaining(String title);
}
創(chuàng)建服務(wù)層
創(chuàng)建一個(gè)名為ArticleService.java的服務(wù)類(lèi):
package com.example.demo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ArticleService {
@Autowired
private ArticleRepository articleRepository;
public Article saveArticle(Article article) {
return articleRepository.save(article);
}
public List<Article> findArticlesByTitle(String title) {
return articleRepository.findByTitleContaining(title);
}
}
創(chuàng)建控制層
創(chuàng)建一個(gè)名為ArticleController.java的控制器類(lèi):
package com.example.demo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/articles")
public class ArticleController {
@Autowired
private ArticleService articleService;
@PostMapping
public Article saveArticle(@RequestBody Article article) {
return articleService.saveArticle(article);
}
@GetMapping
public List<Article> findArticles(@RequestParam String title) {
return articleService.findArticlesByTitle(title);
}
}
運(yùn)行ElasticSearch
確保ElasticSearch已經(jīng)在本地運(yùn)行。如果還沒(méi)有安裝ElasticSearch,可以從ElasticSearch官網(wǎng)下載并安裝。
測(cè)試搜索功能
啟動(dòng)Spring Boot應(yīng)用后,可以通過(guò)以下API進(jìn)行測(cè)試:
保存文章:POST /articles,請(qǐng)求體示例:
{
"title": "Spring Boot with ElasticSearch",
"content": "Integrating ElasticSearch with Spring Boot..."
}
搜索文章:GET /articles?title=Spring,你將會(huì)得到包含“Spring”關(guān)鍵字的文章列表。
結(jié)論
通過(guò)本文的學(xué)習(xí),你已經(jīng)掌握了如何在Spring Boot中集成ElasticSearch,并實(shí)現(xiàn)基本的搜索功能。
到此這篇關(guān)于Spring Boot 集成ElasticSearch實(shí)現(xiàn)搜索功能的文章就介紹到這了,更多相關(guān)Spring Boot ElasticSearch搜索內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot3集成ElasticSearch的方法詳解
- SpringBoot集成elasticsearch使用圖文詳解
- SpringBoot集成ElasticSearch的示例代碼
- Springboot集成Elasticsearch的步驟與相關(guān)功能
- SpringBoot框架集成ElasticSearch實(shí)現(xiàn)過(guò)程示例詳解
- springboot集成elasticsearch7的圖文方法
- SpringBoot集成Elasticsearch過(guò)程實(shí)例
- Springboot集成spring data elasticsearch過(guò)程詳解
- SpringBoot與Elasticsearch8.0集成的實(shí)現(xiàn)步驟
相關(guān)文章
SpringBoot 鉤子接口的實(shí)現(xiàn)代碼
本文主要介紹了SpringBoot 鉤子接口,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-08-08
struts升級(jí)到2.5.2遇到的問(wèn)題及解決方案(推薦)
原來(lái)的版本是2.3.x,由于安全原因需要升級(jí)到2.5.2。但是在升級(jí)過(guò)程中遇到各種各樣的問(wèn)題,下面小編給大家?guī)?lái)了struts升級(jí)到2.5.2遇到的問(wèn)題及解決方案,需要的朋友參考下吧2016-11-11
JavaWeb中struts2實(shí)現(xiàn)文件上傳下載功能實(shí)例解析
這篇文章主要介紹了JavaWeb中struts2文件上傳下載功能的實(shí)現(xiàn),在Web應(yīng)用系統(tǒng)開(kāi)發(fā)中,文件上傳和下載功能是非常常用的功能,需要的朋友可以參考下2016-05-05
SpringBoot異步實(shí)現(xiàn) 的8種方式
在同步操作中,執(zhí)行到?發(fā)送短信?的時(shí)候,我們必須等待這個(gè)方法徹底執(zhí)行完才能執(zhí)行?贈(zèng)送積分?這個(gè)操作,如果?贈(zèng)送積分?這個(gè)動(dòng)作執(zhí)行時(shí)間較長(zhǎng),發(fā)送短信需要等待,這就是典型的同步場(chǎng)景,這篇文章主要介紹了SpringBoot異步實(shí)現(xiàn) 的8種方式,需要的朋友可以參考下2023-11-11
java二叉查找樹(shù)的實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了java二叉查找樹(shù)的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08
Plugin ‘org.springframework.boot:spring-boot-maven-plug
這篇文章給大家介紹了Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found的解決方案,親測(cè)可用,文中給出了兩種解決方法,需要的朋友可以參考下2024-01-01

