zoukankan      html  css  js  c++  java
  • springboot 集成elasticsearh的简单配置

    添加依赖 gradle

        compile("org.springframework.boot:spring-boot-starter-data-elasticsearch:${springBootVersion}")

    只要加入依赖后springboot就可以自动加载相关操作了,基本使用方式如下

    application.properties 中可以配置es的一些动作,下面只列举部分,详细的可以看官网

    # ELASTICSEARCH (ElasticsearchProperties})
    #spring.data.elasticsearch.cluster-name=es-cluster-local
    # The address(es) of the server node (comma-separated; if not specified starts a client node)
    #spring.data.elasticsearch.cluster-nodes=192.168.30.129:9300
    # if local mode should be used with client nodes
    #spring.data.elasticsearch.local=true
    # if spring data repository support is enabled
    #spring.data.elasticsearch.repositories.enabled=true

    下面列举一个简单例子,有使用了lombok要先在idea中安装插件才可以使用

    package cn.xiaojf.today.data.es.entity;
    
    import lombok.Builder;
    import lombok.Data;
    
    /**
     * @author xiaojf 2016/12/14 20:07.
     */
    @Builder
    @Data
    public class Tag {
        private String id;
        private String name;
    }
    package cn.xiaojf.today.data.es.entity;
    
    import lombok.Builder;
    import lombok.Data;
    import org.springframework.data.annotation.Id;
    import org.springframework.data.annotation.Version;
    import org.springframework.data.elasticsearch.annotations.Document;
    import org.springframework.data.elasticsearch.annotations.Field;
    import org.springframework.data.elasticsearch.annotations.FieldType;
    
    import java.util.Date;
    import java.util.List;
    
    /**
     * @author xiaojf 2016/12/14 11:02.
     */
    @Builder
    @Data
    @Document(indexName = "syslog",type = "2016-12-14",shards = 5,replicas = 1)
    public class SysLog {
        @Id
        private String id;
        @Version
        private Long version;
        private String logType;
        @Field(type = FieldType.Ip)
        private String ip;
        private String content;
        @Field(type = FieldType.Date)
        private Date logTime;
        @Field(type = FieldType.Nested)
        private List<Tag> tags;
    }
    package cn.xiaojf.today.data.es.repository;
    
    import cn.xiaojf.today.data.es.entity.SysLog;
    import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
    import org.springframework.stereotype.Repository;
    
    /**
     * @author xiaojf 2016/12/14 20:09.
     */
    public interface SysLogRepository extends ElasticsearchRepository<SysLog,String> {
    
    }
    package cn.xiaojf.today.web.controller;
    
    import cn.xiaojf.today.data.es.entity.SysLog;
    import cn.xiaojf.today.data.es.entity.Tag;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    
    /**
     * @author xiaojf 2016/12/14 20:10.
     */
    @RestController
    @RequestMapping("/es")
    public class EsController {
    //    @Autowired
    //    private SysLogService logService;
    
        @RequestMapping("/add")
        @ResponseBody
        public void add() {
            Tag tag = Tag.builder().name("xiaojf").build();
            List<Tag> tags = new ArrayList<>();
            tags.add(tag);
            tags.add(tag);
    
            SysLog log = SysLog.builder()
                    .ip("172.16.29.193")
                    .content("测试日志")
                    .logTime(new Date())
                    .tags(tags)
                    .build();
    //        logService.add(log);
        }
    }

    只要简单的几个操作,就可以插入数据到es,非常简单

  • 相关阅读:
    JS常用数值验证
    JS遍历对象的属性和值
    SpringBoot解决特殊符号 []报400问题
    postman工具的用法
    SpringBoot使用谷歌方式生成图片验证码
    hibernate配置多对多ORM映射关系
    hibernate配置一对多ORM映射关系
    Class文件结构
    垃圾收集器与内存分配策略
    hibernate持久化类和一级缓存
  • 原文地址:https://www.cnblogs.com/xiaojf/p/6613783.html
Copyright © 2011-2022 走看看