教程:Spring Boot中集成Elasticsearch的步骤

简介: 教程:Spring Boot中集成Elasticsearch的步骤

教程:Spring Boot中集成Elasticsearch的步骤


在当今大数据时代,搜索功能对于许多应用程序至关重要。Elasticsearch作为一款开源的分布式搜索引擎,提供了强大的全文搜索和分析能力,广泛应用于日志分析、实时数据分析和搜索引擎等场景。本文将详细介绍如何在Spring Boot应用中集成Elasticsearch,为开发者展示一条通向高效搜索解决方案的道路。


准备工作

在开始之前,请确保你已经完成以下准备工作:

  • JDK 8及以上版本
  • Maven作为项目构建工具
  • Spring Boot框架
  • Elasticsearch服务器

确保你的开发环境已经配置好,并且可以访问到Elasticsearch服务器。

集成Spring Boot与Elasticsearch

添加依赖

首先,在你的Spring Boot项目的pom.xml文件中添加以下依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>

这个依赖将会自动配置Elasticsearch的相关组件,使得我们可以方便地在Spring Boot应用中使用Elasticsearch。

配置Elasticsearch连接

application.propertiesapplication.yml中添加Elasticsearch的连接配置:

spring.data.elasticsearch.cluster-nodes=localhost:9200
spring.data.elasticsearch.cluster-name=my-elasticsearch-cluster

这里,cluster-nodes指定了Elasticsearch服务器的地址和端口,cluster-name是Elasticsearch集群的名称。

定义实体类

接下来,定义一个实体类,并使用Spring Data的注解来映射到Elasticsearch中的索引和文档类型:

package cn.juwatech.example;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
@Document(indexName = "my_index", type = "my_type")
public class Book {
    @Id
    private String id;
    private String title;
    private String author;
    // Getters and setters
    // Constructors
    // Other fields and methods
}

在这个例子中,我们定义了一个简单的Book类,使用了@Document注解来指定索引名称和文档类型,@Id注解表示文档的唯一标识。

编写Repository接口

接下来,创建一个继承自ElasticsearchRepository的接口来操作Elasticsearch中的数据:

package cn.juwatech.example;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import java.util.List;
public interface BookRepository extends ElasticsearchRepository<Book, String> {
    List<Book> findByTitle(String title);
    List<Book> findByAuthor(String author);
}

通过继承ElasticsearchRepository接口,我们可以方便地进行索引数据的增删改查操作。

使用示例

添加数据

现在,让我们来看一个简单的示例,如何向Elasticsearch中添加数据:

package cn.juwatech.example;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class BookService {
    @Autowired
    private BookRepository bookRepository;
    public void addBook() {
        Book book = new Book();
        book.setId("1");
        book.setTitle("Spring Boot in Action");
        book.setAuthor("Craig Walls");
        bookRepository.save(book);
    }
}

在这个例子中,我们通过BookService将一本书保存到Elasticsearch中。

查询数据

接下来,我们来查询Elasticsearch中的数据:

package cn.juwatech.example;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public class BookSearchService {
    @Autowired
    private BookRepository bookRepository;
    public List<Book> searchByTitle(String title) {
        return bookRepository.findByTitle(title);
    }
    public List<Book> searchByAuthor(String author) {
        return bookRepository.findByAuthor(author);
    }
}

这里,我们创建了一个BookSearchService来进行按标题和作者的搜索操作。

总结

通过本文的教程,我们学习了如何在Spring Boot应用中集成Elasticsearch,并通过实例代码展示了基本的数据操作和搜索功能。从配置依赖、连接Elasticsearch,到定义实体类和操作Repository,我们覆盖了整个集成和使用过程。

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。 &nbsp;
相关文章
存储 JSON Java
846 0
|
11月前
|
人工智能 安全 Shell
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
Jupyter MCP服务器基于模型上下文协议(MCP),实现大型语言模型与Jupyter环境的无缝集成。它通过标准化接口,让AI模型安全访问和操作Jupyter核心组件,如内核、文件系统和终端。本文深入解析其技术架构、功能特性及部署方法。MCP服务器解决了传统AI模型缺乏实时上下文感知的问题,支持代码执行、变量状态获取、文件管理等功能,提升编程效率。同时,严格的权限控制确保了安全性。作为智能化交互工具,Jupyter MCP为动态计算环境与AI模型之间搭建了高效桥梁。
727 2
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
|
安全 Java Linux
Linux安装Elasticsearch详细教程
Linux安装Elasticsearch详细教程
2114 64
|
缓存 前端开发 API
(网页系统集成CAD功能)在线CAD中配置属性的使用教程
本文介绍了Mxcad SDK在线预览和编辑CAD图纸的功能及配置方法。通过Vite、CDN或Webpack实现集成,用户可自定义设置以满足项目需求。主要内容包括:1)`createMxCad()`方法的初始属性配置,如画布ID、WASM文件路径、字体加载路径等;2)`MxFun.setIniset()`方法提供的更多CAD初始配置;3)`McObject`对象API用于动态调整视图背景色、浏览模式等。此外,还提供了在线Demo(https://demo2.mxdraw3d.com:3000/mxcad/)供用户测试实时效果。
|
安全 Java API
【三方服务集成】最新版 | 阿里云短信服务SMS使用教程(包含支持单双参数模板的工具类,拿来即用!)
阿里云短信服务提供API/SDK和控制台调用方式,支持验证码、通知、推广等短信类型。需先注册阿里云账号并实名认证,然后在短信服务控制台申请资质、签名和模板,并创建AccessKey。最后通过Maven引入依赖,使用工具类发送短信验证码。
7595 3
【三方服务集成】最新版 | 阿里云短信服务SMS使用教程(包含支持单双参数模板的工具类,拿来即用!)
|
JSON Java API
springboot集成ElasticSearch使用completion实现补全功能
springboot集成ElasticSearch使用completion实现补全功能
317 1
|
Web App开发 JavaScript Java
elasticsearch学习五:springboot整合 rest 操作elasticsearch的 实际案例操作,编写搜索的前后端,爬取京东数据到elasticsearch中。
这篇文章是关于如何使用Spring Boot整合Elasticsearch,并通过REST客户端操作Elasticsearch,实现一个简单的搜索前后端,以及如何爬取京东数据到Elasticsearch的案例教程。
979 0
elasticsearch学习五:springboot整合 rest 操作elasticsearch的 实际案例操作,编写搜索的前后端,爬取京东数据到elasticsearch中。
|
JSON Java 网络架构
elasticsearch学习四:使用springboot整合 rest 进行搭建elasticsearch服务
这篇文章介绍了如何使用Spring Boot整合REST方式来搭建和操作Elasticsearch服务。
477 4
elasticsearch学习四:使用springboot整合 rest 进行搭建elasticsearch服务
|
自然语言处理 Java Maven
elasticsearch学习二:使用springboot整合TransportClient 进行搭建elasticsearch服务
这篇博客介绍了如何使用Spring Boot整合TransportClient搭建Elasticsearch服务,包括项目创建、Maven依赖、业务代码和测试示例。
779 0
elasticsearch学习二:使用springboot整合TransportClient 进行搭建elasticsearch服务
|
Java
【极问系列】springBoot集成elasticsearch出现Unable to parse response body for Response
【极问系列】springBoot集成elasticsearch出现Unable to parse response body for Response
1689 2

热门文章

最新文章