Spring boot 2.3.12集成ElasticSearch7.6.2并进行CRUD

这篇具有很好参考价值的文章主要介绍了Spring boot 2.3.12集成ElasticSearch7.6.2并进行CRUD。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

本篇博客主要讲解Spring boot 2.3.12集成ElasticSearch7.6.2并进行CRUD操作。其它版本的spring boot集成ElasticSearch类似,只需要具体各自的版本是否匹配。通过本篇博客能够成功集成ElasticSearch并进行CRUD操作,适合刚接触ElasticSearch需要进行简单CRUD操作的读者。

ElasticSearch与Mysql的对应关系

在集成ElasticSearch之前需要明确一下ElasticSearch与Mysql的对应关系看,更便于之后对ElasticSearch的CRUD。

ElasticSearch Mysql
索引库(indices) Database 数据库
类型(type) Table 数据表
文档(Document) Row 行
域字段(Field) Columns 列
映射配置(mappings) 每个列的约束(类型、长度)

ps:一个索引库下可以有不同类型的索引(目前6.X以后的版本只能有一个类型)

Spring boot 集成 ElasticSearch

确定集成的版本号

Spring boot集成ElasticSearch首先需要确定各自的版本号,如果各自版本号不匹配会出现版本不兼容问题,以及对应功能使用不了。
查询spring boot 匹配ElasticSearch的版本:版本匹配查询
Spring boot 2.3.12集成ElasticSearch7.6.2并进行CRUD

spring boot项目中添加依赖

在pom.xml文件中添加以下内容:

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
    <version>7.6.2</version>
</dependency>

初始化

一个RestHighLevelClient实例需要一个REST底层客户端构建器
咱们新建一个配置类:ElasticSearchConfig

import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author : [WangWei]
 * @version : [v1.0]
 * @className : ElasticSearchConfig
 * @description : [ElasticSearch配置类]
 * @createTime : [2022/10/14 14:36]
 * @updateUser : [WangWei]
 * @updateTime : [2022/10/14 14:36]
 * @updateRemark : [描述说明本次修改内容]
 */
@Configuration
public class ElasticSearchConfig {
    /*
     * @version V1.0 
     * Title: restHighLevelClient
     * @author Wangwei 
     * @description 创建构造器
     * @createTime  2022/10/17 16:35
     * @param [] 
     * @return org.elasticsearch.client.RestHighLevelClient
     */
    @Bean
    public RestHighLevelClient restHighLevelClient(){
        RestHighLevelClient client = new RestHighLevelClient(
                RestClient.builder(
                        new HttpHost("127.0.0.0", 9200, "http")));
        return client;
    }

}

}

CRUD操作

rest-high-level 7.6.2 API
在对应的业务类中注入RestHighLevelClient文章来源地址https://www.toymoban.com/news/detail-404929.html

@Autowired
    private RestHighLevelClient restHighLevelClient;
 /*
    * @version V1.0
    * Title: testCreatIndex
    * @author Wangwei
    * @description 创建索引
    * @createTime  2022/10/17 17:15
    * @param []
    * @return void
    */
    public void testCreatIndex() throws IOException {
        //创建索引请求
        CreateIndexRequest request = new CreateIndexRequest("test_index");
        //客户端执行请求IndicesClient,请求后获得相应
        CreateIndexResponse createIndexResponse = restHighLevelClient.indices().create(request, RequestOptions.DEFAULT);
        System.out.println(createIndexResponse);
    }
    /*
     * @version V1.0
     * Title: testDeleteIndex
     * @author Wangwei
     * @description 删除索引
     * @createTime  2022/10/17 17:15
     * @param []
     * @return void
     */
    public  void testDeleteIndex() throws IOException {
        DeleteIndexRequest deleteIndexRequest = new DeleteIndexRequest("test_index");
        //执行删除索引的方法
        AcknowledgedResponse delete = restHighLevelClient.indices().delete(deleteIndexRequest, RequestOptions.DEFAULT);
        //查看是否删除成功
        System.out.println(delete.isAcknowledged());
    }

    /*
     * @version V1.0
     * Title: testAddDocument
     * @author Wangwei
     * @description 添加文档
     * @createTime  2022/10/17 17:24
     * @param []
     * @return void
     */
    public void testAddDocument() throws IOException {
        //创建对象
        ElasticSearchWordModel elasticSearchWordModel=new ElasticSearchWordModel;
        elasticSearchWordModel.setText("David");
        elasticSearchWordModel.setAnalyzer("ICU分词器");

        //创建请求
        IndexRequest request = new IndexRequest("test_index");
        //设置这条文档的id为1
        request.id("1");
        //将数据放入请求
        request.source(JSON.toJSONString(elasticSearchWordModel), XContentType.JSON);
        //向客户端发送请求,获取相应的结果
        IndexResponse indexResponse = restHighLevelClient.index(request, RequestOptions.DEFAULT);
        //输出信息和状态
        System.out.println(indexResponse.toString());
        System.out.println(indexResponse.status());

    }
    /*
     * @version V1.0
     * Title: testGetDocument
     * @author Wangwei
     * @description 获取文档信息
     * @createTime  2022/10/17 17:25
     * @param []
     * @return void
     */
    public void testGetDocument() throws IOException {
        //构造条件,这选择的是查询
        GetRequest test_index = new GetRequest("test_index","1");
        GetResponse documentFields = restHighLevelClient.get(test_index, RequestOptions.DEFAULT);
        //打印文档的内容
        System.out.println(documentFields.getSourceAsString());
        //返回全部内容
        System.out.println(documentFields);
    }

如果博主的文章对您有所帮助,可以评论、点赞、收藏,支持一下博主!!!

到了这里,关于Spring boot 2.3.12集成ElasticSearch7.6.2并进行CRUD的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Boot集成Elasticsearch实战

    最近项目中要使用Elasticsearch所以就去简单的学习了一下怎么使用,具体的一些在高级的功能暂时展示不了,能力目前有点限,不过一些基本的需求还是可以满足的。所以就写了一篇整理一下也希望能够指出不足之处 docker部署 正常部署 首先根据spring提供的findAll方法获取所有

    2024年02月09日
    浏览(42)
  • Spring Boot 集成 Elasticsearch 实战

    @Configuration public class ElasticsearchConfiguration { @Value(“${elasticsearch.host}”) private String host; @Value(“${elasticsearch.port}”) private int port; @Value(“${elasticsearch.connTimeout}”) private int connTimeout; @Value(“${elasticsearch.socketTimeout}”) private int socketTimeout; @Value(“${elasticsearch.connectionRequestTimeout}”

    2024年04月10日
    浏览(45)
  • Spring boot简单集成Elasticsearch

    本文主要介绍Spring boot如何简单集成Elasticsearch,关于es,可以理解为一个数据库,往es中插入数据,然后使用es进行检索。 环境准备 安装es 和kibana :参考 安装ik分词器:参考 相关配置 pom.xml文件中引入es: yml文件配置es: ES查询 往es插数据 需要让mapper层继承ElasticsearchReposito

    2024年02月22日
    浏览(50)
  • [Spring Boot]12 ElasticSearch实现分词搜索功能

    我们在使用搜索功能的时候,有时,为了使搜索的结果更多更广,比如搜索字符串“领导力”,希望有这些组合的结果(领导力、领导、领、导、力)都要能够全部展示出来。 这里我们引入ElasticSearch结合分词插件,来实现这样的搜索功能。 比如:一款app需要对“课程”进行

    2024年02月03日
    浏览(42)
  • spring boot集成Elasticsearch-SpringBoot(25)

      搜索引擎(search engine )通常意义上是指:根据特定策略,运用特定的爬虫程序从互联网上搜集信息,然后对信息进行处理后,为用户提供检索服务,将检索到的相关信息展示给用户的系统。   而我们讲解的是捜索的索引和检索,不涉及爬虫程序的内容爬取。大部分公司

    2023年04月09日
    浏览(113)
  • 使用Spring Boot集成中间件:Elasticsearch基础->提高篇

    Elasticsearch是一个开源的分布式搜索和分析引擎,广泛用于构建实时的搜索和分析应用。在本篇博客中,我们将深入讲解如何使用Spring Boot集成Elasticsearch,实现数据的索引、搜索和分析。 在开始之前,确保已经完成以下准备工作: 安装并启动Elasticsearch集群 创建Elasticsearch索引

    2024年01月19日
    浏览(45)
  • springboot集成elasticsearch7.17.3

    环境: jdk1.8 springboot: 2.7.0 spring elastisearch官方文档 1、引入es依赖 2、配置文件application.yaml 1、定义实体类 Book 2、注解: @Document 作用:标识要持久化到Elasticsearch的域对象, 如定义索引名 @Document(indexName=\\\"books\\\") @Id 作用:定义标识符 - 文档id @Id private Long id; @Field 作用:对持久化

    2024年01月25日
    浏览(50)
  • SpringBoot集成Elasticsearch7.4 实战(一)

    在网上已经有好多关于Elasticsearch的介绍,就不在翻来覆去讲一些基本概念,大家感兴趣的可以自己去找一些资料巩固下。这次只为了顾及众多首次接触Elasticsearch,案例都讲的很浅显,还有就是受个人能力所限,各位读者发现有错误之处,也可进行讨论和指出。 本篇文章主要

    2023年04月09日
    浏览(54)
  • 如何使用Spring Cloud搭建高可用的Elasticsearch集群?详解Elasticsearch的安装与配置及Spring Boot集成的实现

    Spring Cloud 是一个基于 Spring Boot 的微服务框架,它提供了一系列组件和工具,方便开发人员快速搭建和管理分布式系统。Elasticsearch 是一个开源的全文搜索引擎,也是一个分布式、高可用的 NoSQL 数据库。本篇博客将详细讲解如何使用 Spring Cloud 搭建 Elasticsearch,并介绍如何在

    2023年04月09日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包