首页 > 其他分享 >springboot整合ElasticSearch

springboot整合ElasticSearch

时间:2024-07-06 22:32:24浏览次数:22  
标签:springboot keyword private ElasticSearch elasticsearch 整合 new type class

    1. RestClient依赖,此为java的客户端,从来交互elasticsearch

      <dependency>
          <groupId>org.elasticsearch.client</groupId>
          <artifactId>elasticsearch-rest-high-level-client</artifactId>
      </dependency>
    2. 因为SpringBoot默认的ES版本是7.17.10,所以我们需要覆盖默认的ES版本:

        <properties>
           <maven.compiler.source>11</maven.compiler.source>
            <maven.compiler.target>11</maven.compiler.target>
            <elasticsearch.version>7.12.1</elasticsearch.version>
        </properties>
    3. application

      es:
        host: 192.168.43.135
        port: 9200
    4. EsProperties

      @Data
      @Configuration
      @ConfigurationProperties(prefix = "es")
      public class EsProperties {
          private String host;
          private Integer port;
      }
    5. EsConfig

      @Configuration
      public class EsConfig {
          @Autowired
          private EsProperties esProperties;
          @Bean
          public RestHighLevelClient restHighLevelClient() {
              return new RestHighLevelClient(RestClient.builder(new HttpHost(esProperties.getHost()
                      , esProperties.getPort())));
          }
      }
    6. 创建数据库对应的索引库

      查看代码
       PUT /hotel
      {
        "mappings": {
          "properties": {
            "id": {
              "type": "keyword"
            },
            "name":{
              "type": "text",
              "analyzer": "ik_max_word",
              "copy_to": "all"
            },
            "address":{
              "type": "keyword",
              "index": false
            },
            "price":{
              "type": "integer"
            },
            "score":{
              "type": "integer"
            },
            "brand":{
              "type": "keyword",
              "copy_to": "all"
            },
            "city":{
              "type": "keyword",
              "copy_to": "all"
            },
            "starName":{
              "type": "keyword"
            },
            "business":{
              "type": "keyword"
            },
            "location":{
              "type": "geo_point"
            },
            "pic":{
              "type": "keyword",
              "index": false
            },
            "all":{
              "type": "text",
              "analyzer": "ik_max_word"
            },
              "isAD":{
              "type": "boolean"
            }
          }
        }
      }

       

    7. 批量从数据库把数据导入到elasticsearch中

      @SpringBootTest
      class HotelDemoApplicationTests {
      @Autowired
      private HotelService hotelService;
      @Autowired
      private RestHighLevelClient client;
          @Test
          void contextLoads() throws IOException {
              List<Hotel> list = hotelService.list();
              BulkRequest bulkRequest = new BulkRequest();
              List<HotelDoc> hotelDocs = BeanUtil.copyToList(list, HotelDoc.class);
              for (HotelDoc hotelDoc : hotelDocs) {
                  bulkRequest.add(new IndexRequest("hotel")
                          .id(hotelDoc.getId().toString())
                          .source(JSONUtil.toJsonStr(hotelDoc), XContentType.JSON)
                  );
              }
              client.bulk(bulkRequest, RequestOptions.DEFAULT);
          }
      }
    8. 写controller……service

标签:springboot,keyword,private,ElasticSearch,elasticsearch,整合,new,type,class
From: https://www.cnblogs.com/dragon-proud-sky/p/18287899

相关文章

  • Spring的@Value注解和SpringBoot yml配置项目实战踩坑总结
    知识点Spring提供了@Value注解,可用于将配置文件或注册中心的属性值动态注入到Bean中。注:@Value注解在spring-beans包里。@Value("${...}"):注入获取对应属性文件中定义的属性值;@Value("#{...}"):表示SpEl表达式通常用来获取Bean的属性;实例/***服务内动态配置**@au......
  • 基于SpringBoot+Vue的招生管理系统(带1w+文档)
    基于SpringBoot+Vue的招生管理系统(带1w+文档)通过招生管理系统的研究可以更好地理解系统开发的意义,而且也有利于发展更多的智能系统,解决了人才的供给和需求的平衡问题,招生管理系统的开发建设,由于其开发周期短,维护方便,所以它可以适应招生公告体系基本要求。项目简介基于......
  • 【计算机毕业设计】springboot房屋租赁系统的设计与实现
    随着社会的不断进步与发展,人们经济水平也不断的提高,于是对各行各业需求也越来越高。特别是从2019年新型冠状病毒爆发以来,利用计算机网络来处理各行业事务这一概念更深入人心,由于工作繁忙以及疫情的原因,用户到房源公司进行房屋求租也是比较难实施的。如果开发一款房屋租赁系......
  • springboot长江航运管理系统-计算机毕业设计源码54774
    摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,长江航运公司当然也不例外。长江航运管理系统是以实际运用为开发背景,运用软件工程原理和开发方法,采用Java技术构建的一个管理系统。整个开发过程首先对软件......
  • SpringBoot引入WebSocket
    WebSocket是一种在客户端和服务器之间提供低延迟、全双工通信的网络协议。它允许双方在建立一次连接后,进行实时、持续的数据交换,无需像HTTP那样为每一个请求和响应建立新的连接。WebSocket的设计初衷是解决传统HTTP协议在实时通信方面的不足,比如实现实时聊天、游戏、股票报价等......
  • 【SpringBoot】SpringBoot自动装配原理
    在上一篇文章中,讲述了SpringBoot核心启动流程源码解析其中,主要是构造方法和run方法的处理,本篇接着准备上下文环境后续,讲述是如何将springboot是如何完成自动装配,主线其实就是什么时候完成对主类的加载,也即对SpringBootApplication类加载到IOC容器中什么时候完成对Spring......
  • SpringBoot如何集成和使用开源工作流引擎camunda
    使用camunda开源工作流引擎有:通过docker运行、使用springboot集成、部署camunda发行包、基于源代码编译运行等多种方式。其中,通过源代码编译运行的方式最为复杂,具体参考:https://lowcode.blog.csdn.net/article/details/136206057文本重点介绍如何在SpringBoot应用程序中如何集......
  • 基于SpringBoot+vue的车辆充电桩系统(带1w+文档)
    基于SpringBoot+vue的车辆充电桩系统(带1w+文档)本次设计任务是要设计一个车辆充电桩管理系统,通过这个系统能够满足车辆充电桩管理系统的管理功能。系统的主要功能包括首页、个人中心、维修员管理、用户管理、电桩类别管理、充电桩管理、充电桩报修管理、维修回复管理、系......
  • 基于java+springboot+vue实现的图书商城管理系统(文末源码+Lw)283
     摘 要现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本图书商城管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理......
  • 基于java+springboot+vue实现的旅游推荐系统(文末源码+Lw)280
    摘 要传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装旅游推荐系统软件来发挥其高效地信息处理的作用,可以规范信息管理流程,让管理工作可以系统化和程序化,同时,旅游推荐系统的有效......