SpringBoot集成ElasticSearch实现搜索功能

SpringBoot集成ElasticSearch实现搜索功能

引言

在现代Web应用中,搜索功能是一个非常重要的特性。ElasticSearch是一个分布式的搜索和分析引擎,能够快速地存储、搜索和分析大量数据。Spring Data ElasticSearch提供了与ElasticSearch集成的简便方式。本文将介绍如何在Spring Boot中集成ElasticSearch,实现基本的搜索功能。

什么是ElasticSearch

ElasticSearch是一个基于Lucene的开源搜索引擎,支持全文搜索、结构化搜索和分析,并能够处理海量数据。它提供了一个分布式多租户能力的全文搜索引擎,具有高度的可扩展性和实时性。

图片[1]-SpringBoot集成ElasticSearch实现搜索功能-QQ沐编程

添加依赖

在Spring Boot项目中添加ElasticSearch的依赖。在pom.xml文件中添加以下依赖项:

<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

创建实体类

创建一个名为Article.java的实体类:

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
}

创建Repository接口

创建一个名为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);
}

创建服务层

创建一个名为ArticleService.java的服务类:

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);
    }
}

创建控制层

创建一个名为ArticleController.java的控制器类:

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);
    }
}

运行ElasticSearch

确保ElasticSearch已经在本地运行。如果还没有安装ElasticSearch,可以从ElasticSearch官网下载并安装。

测试搜索功能

启动Spring Boot应用后,可以通过以下API进行测试:

保存文章:POST /articles,请求体示例:

{
    "title": "Spring Boot with ElasticSearch",
    "content": "Integrating ElasticSearch with Spring Boot..."
}

搜索文章:GET /articles?title=Spring,你将会得到包含“Spring”关键字的文章列表。

结论

通过本文的学习,你已经掌握了如何在Spring Boot中集成ElasticSearch,并实现基本的搜索功能。

到此这篇关于Spring Boot 集成ElasticSearch实现搜索功能的文章就介绍到这了,更多相关Spring Boot ElasticSearch搜索内容请搜索QQ沐编程以前的文章或继续浏览下面的相关文章希望大家以后多多支持QQ沐编程!

© 版权声明
THE END
喜欢就支持一下吧
点赞8赞赏 分享