• ELK Springboot集成ElasticSearch7.6.2 SpringData


    目录

    一、依赖引入

    二、配置yml

    三、添加实体类

    四、添加Dao层

    五、渲染层

    六、启动类

    七、效果测试


    本次小结为最简单易懂的总结,适用于7版本。


    一、依赖引入

    1. "1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    5. <modelVersion>4.0.0modelVersion>
    6. <groupId>com.dragonwugroupId>
    7. <artifactId>ES8-springartifactId>
    8. <version>1.0-SNAPSHOTversion>
    9. <parent>
    10. <groupId>org.springframework.bootgroupId>
    11. <version>2.3.2.RELEASEversion>
    12. <artifactId>spring-boot-starter-parentartifactId>
    13. <relativePath/>
    14. parent>
    15. <properties>
    16. <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
    17. <project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding>
    18. <java.version>1.8java.version>
    19. properties>
    20. <dependencies>
    21. <dependency>
    22. <groupId>org.springframework.bootgroupId>
    23. <artifactId>spring-boot-starter-webartifactId>
    24. dependency>
    25. <dependency>
    26. <groupId>org.springframework.bootgroupId>
    27. <artifactId>spring-boot-starter-data-elasticsearchartifactId>
    28. dependency>
    29. <dependency>
    30. <groupId>org.projectlombokgroupId>
    31. <artifactId>lombokartifactId>
    32. dependency>
    33. dependencies>
    34. project>

    这里最主要的依赖就是:

    1. <dependency>
    2. <groupId>org.springframework.bootgroupId>
    3. <artifactId>spring-boot-starter-data-elasticsearchartifactId>
    4. dependency>

    二、配置yml

    1. spring:
    2. elasticsearch:
    3. rest:
    4. # 设置ES的地址
    5. uris: http://localhost:9200
    6. data:
    7. elasticsearch:
    8. repositories:
    9. # 设置springData自动创建表
    10. enabled: true

    三、添加实体类

    1. package com.dragonwu.entity;
    2. import lombok.AllArgsConstructor;
    3. import lombok.Data;
    4. import lombok.NoArgsConstructor;
    5. import org.springframework.data.annotation.Id;
    6. import org.springframework.data.elasticsearch.annotations.Document;
    7. import org.springframework.data.elasticsearch.annotations.Field;
    8. import org.springframework.data.elasticsearch.annotations.FieldType;
    9. /**
    10. * @author DragonWu
    11. * @date 2022-09-19 15:53
    12. **/
    13. @Data
    14. @AllArgsConstructor
    15. @NoArgsConstructor
    16. // Document设置ES里的索引名
    17. @Document(indexName = "information")
    18. public class Information {
    19. //store=true设置存储,index=false表示不进行索引搜索
    20. @Id
    21. @Field(type = FieldType.Long,store = true,index = false)
    22. private Long id;
    23. //analyzer设置分词器
    24. @Field(type = FieldType.Text,store = true,analyzer = "ik_max_word")
    25. private String data;
    26. }

    四、添加Dao层

    集成抽象类,抽象类的第一个参数为对应的实体类,第二个参数为对应的id类型

    1. package com.dragonwu.dao;
    2. import com.dragonwu.entity.Information;
    3. import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
    4. /**
    5. * @author DragonWu
    6. * @date 2022-09-19 16:04
    7. **/
    8. public interface InformationDao extends ElasticsearchRepository {
    9. }

    五、渲染层

    由于方便测试,我们这里直接忽略掉服务层

    1. package com.dragonwu.controller;
    2. import com.dragonwu.dao.InformationDao;
    3. import com.dragonwu.entity.Information;
    4. import org.springframework.beans.factory.annotation.Autowired;
    5. import org.springframework.web.bind.annotation.DeleteMapping;
    6. import org.springframework.web.bind.annotation.GetMapping;
    7. import org.springframework.web.bind.annotation.PathVariable;
    8. import org.springframework.web.bind.annotation.PostMapping;
    9. import org.springframework.web.bind.annotation.RequestBody;
    10. import org.springframework.web.bind.annotation.RequestMapping;
    11. import org.springframework.web.bind.annotation.RestController;
    12. /**
    13. * @author DragonWu
    14. * @date 2022-09-19 16:31
    15. **/
    16. @RestController
    17. @RequestMapping("/information")
    18. public class InformationTestController {
    19. @Autowired
    20. private InformationDao informationDao;
    21. /**
    22. * 新增或修改
    23. */
    24. @PostMapping("/save")
    25. public String save(@RequestBody Information information){
    26. informationDao.save(information);
    27. return "ok";
    28. }
    29. /**
    30. * 删除
    31. */
    32. @DeleteMapping("/delete/{id}")
    33. public String delete(@PathVariable Long id){
    34. informationDao.deleteById(id);
    35. return "ok";
    36. }
    37. /**
    38. * 查询
    39. */
    40. @GetMapping("/queryAll")
    41. public Iterable queryAll(){
    42. return informationDao.findAll();
    43. }
    44. }

    六、启动类

    1. package com.dragonwu;
    2. import org.springframework.boot.SpringApplication;
    3. import org.springframework.boot.autoconfigure.SpringBootApplication;
    4. /**
    5. * @author DragonWu
    6. * @date 2022-09-19 16:26
    7. **/
    8. @SpringBootApplication
    9. public class APP {
    10. public static void main(String[] args) {
    11. SpringApplication.run(APP.class,args);
    12. }
    13. }

    七、效果测试

    运行启动类,加载程序后索引将会被自动创建。

    这里我们通过ApiPost进行测试。

    可以看到索引已经被创建。 

    访问增加和修改的接口都是这个:

     查询文档:

     查询成功。

    通过springboot的api进行查询:

    同样也是没问题的。

    访问删除接口

     删除成功,再次查看文档

     可以看到文档已经被删除了。

    演示结束。

  • 相关阅读:
    【Linux】Linux中的基本概念
    Discuz!论坛程序安装+模板配置教程
    在KubeSphere启用基于Jenkins的DevOps
    lodash已死?radash最全使用介绍(附源码说明)—— Array方法篇(2)
    Spring中的JdbcTemplate的使用
    加餐:解决 Android 手机 ping 连接同一局域网的 WindowsPC 时 ping 不通问题
    车间调度问题总结笔记二——AGV调度
    Java高级篇-----jdk1.8新特性
    有了PMP证书,还用考CSPM吗?
    电脑重装系统后Win11用户账户控制设置怎么取消
  • 原文地址:https://blog.csdn.net/qq_50909707/article/details/126936511