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

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 教程: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,我们覆盖了整个集成和使用过程。

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
24天前
|
XML Java API
Spring Boot集成MinIO
本文介绍了如何在Spring Boot项目中集成MinIO,一个高性能的分布式对象存储服务。主要步骤包括:引入MinIO依赖、配置MinIO属性、创建MinIO配置类和服务类、使用服务类实现文件上传和下载功能,以及运行应用进行测试。通过这些步骤,可以轻松地在项目中使用MinIO的对象存储功能。
|
26天前
|
消息中间件 Java Kafka
什么是Apache Kafka?如何将其与Spring Boot集成?
什么是Apache Kafka?如何将其与Spring Boot集成?
63 5
|
28天前
|
消息中间件 Java Kafka
Spring Boot 与 Apache Kafka 集成详解:构建高效消息驱动应用
Spring Boot 与 Apache Kafka 集成详解:构建高效消息驱动应用
43 1
|
1月前
|
JSON Java API
springboot集成ElasticSearch使用completion实现补全功能
springboot集成ElasticSearch使用completion实现补全功能
42 1
|
2月前
|
JSON Java Maven
实现Java Spring Boot FCM推送教程
本指南介绍了如何在Spring Boot项目中集成Firebase云消息服务(FCM),包括创建项目、添加依赖、配置服务账户密钥、编写推送服务类以及发送消息等步骤,帮助开发者快速实现推送通知功能。
119 2
|
2月前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
234 1
|
2月前
|
Java Spring
springboot 学习十一:Spring Boot 优雅的集成 Lombok
这篇文章是关于如何在Spring Boot项目中集成Lombok,以简化JavaBean的编写,避免冗余代码,并提供了相关的配置步骤和常用注解的介绍。
124 0
|
2月前
|
开发框架 监控 搜索推荐
GoFly快速开发框架集成ZincSearch全文搜索引擎 - Elasticsearch轻量级替代为ZincSearch全文搜索引擎
本文介绍了在项目开发中使用ZincSearch作为全文搜索引擎的优势,包括其轻量级、易于安装和使用、资源占用低等特点,以及如何在GoFly快速开发框架中集成和使用ZincSearch,提供了详细的开发文档和实例代码,帮助开发者高效地实现搜索功能。
201 0
|
2月前
|
Java Maven Docker
gitlab-ci 集成 k3s 部署spring boot 应用
gitlab-ci 集成 k3s 部署spring boot 应用
|
29天前
|
消息中间件 监控 Java
您是否已集成 Spring Boot 与 ActiveMQ?
您是否已集成 Spring Boot 与 ActiveMQ?
53 0