zoukankan      html  css  js  c++  java
  • springboot与elasticsearch整合

    资源下载:
    ElasticSearch官方下载地址:https://www.elastic.co/downloads/elasticsearch
    curl下载地址:http://curl.haxx.se/download.html
    Kibana下载地址:https://www.elastic.co/guide/en/kibana/4.6/index.html
    sense下载地址:https://download.elastic.co/elastic/sense/sense-latest.tar.gz
    ik分词器下载地址:https://github.com/medcl/elasticsearch-analysis-ik
    logstash下载地址:https://www.elastic.co/cn/downloads/logstash
    elasticsearch官网地址:https://www.elastic.co
    注意:ElasticSearch和Kibana版本必须一致
    我用到的elasticsearch版本和Kibana是 6.4.3
    1,查看本地项目spring和springboot版本号

    public static void main(String[] args) {
        System.out.println(SpringVersion.getVersion());
        System.out.println(SpringBootVersion.getVersion());
    }

    2,导入相关依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
    </dependency>

    3,application.yml配置文件

    #es配置
    spring:
    data:
      elasticsearch:
        cluster-name: elasticsearch //默认集群名称
        cluster-nodes: 127.0.0.1:9300 //默认启动集群节点

    4,启动类配置@EnableElasticsearchRepositories(basePackages = “com.aigezi.cdd.entity.dao.es”), basePackages是es资源库所在包

    @SpringBootApplication
    @EnableElasticsearchRepositories(basePackages = "com.aigezi.cdd.entity.dao.es")
    public class SpringbootElasticsearchApplication {
        public static void main(String[] args) {
            SpringApplication.run(SpringbootElasticsearchApplication.class, args);
        }
    }

    5,索引文档实体 注意此时@Id注解的导入包来自import org.springframework.data.annotation.Id,索引名称必须为小写

    @Document(indexName = "product", type = "book")
    @Data
    public class Book {
       @Id
       String id; 
       String name;
       String message;
       String type;
    
       public Book(){}
    
       public Book(String id,String name,String message,String type){
          this.id = id;
          this.name = name;
          this.message = message;
          this.type = type;
       }
    
    }

    6,elasticsearch资源库 继承了ElasticsearchRepository,封装了很多API

    @Component
    public interface BookRepository extends ElasticsearchRepository<Book,String> { // Book是索引文档实体,String是文档id类型
    }

    7,Controller 层 增删改查操作

    @Resource
    BookRepository bookRepository;
    
    @ApiOperation("创建索引")
    @PostMapping("/auth/add")
    public String add(){
        Book book = new Book();
        book.setId("1");
        book.setMessage("TTTTGGGGDDD");
        book.setType("es");
        book.setName("spring");
        bookRepository.save(book);
        return "success";
    }

    8,在Kibana访问新建索引

    GET /product/book/_search
    
    查询结果:
    {
            "_index": "product",
            "_type": "book",
            "_id": "1",
            "_score": 1,
            "_source": {
              "id": "1",
              "name": "spring",
              "message": "TTTTGGGGDDD",
              "type": "es"
            }
          }

    END !!!

  • 相关阅读:
    python知识点整理一
    Selenium之自动化常遇问题
    git学习
    哈,又是总结内容
    2.3返回IP地址(requests模块安装,get请求发送,loads 解析json到字典)
    2.2返回状态码的分类描述
    2.1JSON数据格式
    1.6file文件
    福利:字符串与字符编码
    1.5list中sort && sorted
  • 原文地址:https://www.cnblogs.com/aigezi/p/12900835.html
Copyright © 2011-2022 走看看