elasticSearch下载安装配置及整合springboot

 

# 下载地址:

链接:https://pan.baidu.com/s/1Rr-v047Kg5y563v1njV-0g 
提取码:zcna 

我这里用的是都是7.5的window版本

 

如果需要其它版本下面是官网下载地址

https://www.elastic.co/cn/downloads/elasticsearch

 


# elasticSearch安装配置:

解压后打开config文件下的elasticsearch.yml

将注释的cluster.name: my-application放开

也可以自己起一个名字,打开bin文件夹点击elasticsearch.bat启动

打开http://localhost:9200出现这个界面说吗我们启动成功了,之后我们再进行kibanna,logstash配置

 


# kibanna安装配置:

kibanna是为了方便我们操作elasticSearch的一个网站,同样在config文件下打开kibana.yml配置文件,在配置文件最后面加入

i18n.locale: "zh-CN"  是将网站设置成中文,不设置的话默认是英文

elasticsearch.hosts: "http://localhost:9200"   这里的http://localhost:9200就是我们上面es的地址

然后点击bin/kibana.bat启动,启动可能会需要点时间,启动完成后打开http://localhost:5601,出现这个界面说明成功了

进入后点击左侧小扳手图标,这也是我们最常用的

可以尝试下在控制台对es进行操作,例如 输入GET _all  点击运行查看

 


# logstash配置:

logstash是用来进行同步数据到es的,我这里将自己的mysql的gm_activity表数据同步到es,启动logstash后es将创建一个gm_activity索引存储数据

需要一个mysql驱动  mysql-connector-java-5.1.47.jar

我这里是暂时是放在这个位置

然后进入bin文件夹,创建一个mysql.conf文件,下面是我的mysql.conf文件的配置的内容


input {
    stdin {
    }
    jdbc {
      # mysql数据库连接
      jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/plus?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC"
      # mysqly用户名和密码
      jdbc_user => "root"
      jdbc_password => "root"
      # 驱动配置
      jdbc_driver_library => "E:\elasticSearch\logstash-7.5.2\mysql-connector-java-5.1.47.jar"
      # 驱动类名
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
      # 执行指定的sql文件
      #statement_filepath => "D:\service\logstash-7.7.0\mysql\sql\fa_search.sql"
 
      #执行的sql语句
       statement => "SELECT * FROM gm_activity"
      # 设置监听 各字段含义 分 时 天 月  年 ,默认全部为*代表含义:每分钟都更新
      schedule => "* * * * *"
      # 索引类型
      #type => "blog"
    }
}
 
 
output {
 
    elasticsearch {
        #es服务器
        hosts => ["localhost:9200"]
        #ES索引名称
        index => "gm_activity"
        #自增ID
        document_id => "%{id}"
    }
    
 
    stdout {
        codec => json_lines
    }
}

根据自己的情况去更改相应内容。

然后在bin目录下运行命令.\logstash.bat  -f  mysql.conf  启动成功后可以在kibanna查看数据

 


# elasticSearch整合springboot:

要注意 我这里用的springboot版本是2.2.0 ,springboot版本不能太低,太低的话会出现一些问题,而且有些问题在启动的时候不会报错,在调用时报错  !

pom文件引入

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

 

创建一个类,对应es里索引名为 gm_activity 的数据的字段

package com.platform.modules.napoleon.model.es;


import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.io.Serializable;

@Data
@Document(indexName = "gm_activity",type = "_doc",useServerConfiguration = true,createIndex = false)
public class EsSpecificActivity implements Serializable {
    @Id
    private int id;

    @Field(type = FieldType.Text,analyzer = "language")
    private String name;

    @Field(type = FieldType.Text,analyzer = "language")
    private String icon;

    @Field(type = FieldType.Text,analyzer = "language")
    private String banner;

    @Field(type = FieldType.Text,analyzer = "language")
    private String visibleConditions;

    @Field(type = FieldType.Text,analyzer = "language")
    private String joinConditions;

    @Field(type = FieldType.Text,analyzer = "language")
    private String type;

    @Field(type = FieldType.Long,analyzer = "language")
    private int openType;

    @Field(type = FieldType.Text,analyzer = "language")
    private String openTime;

    @Field(type = FieldType.Text,analyzer = "language")
    private String duration;

    @Field(type = FieldType.Text,analyzer = "language")
    private String loopDelayTime;

    @Field(type = FieldType.Text,analyzer = "language")
    private String closeDelayTime;

    @Field(type = FieldType.Long,analyzer = "language")
    private int status;
    
    @Field(type = FieldType.Long,analyzer = "language")
    private int statistics;

}

 

@Document 注解里 useServerConfiguration表示是否启动服务器端配置  createIndex如果为true的话es里没有gm_activity索引的话将会为es创建

@id  表示主键

@Field 里 type根据属性类型去设置,analyzer分词器如果没配置默认是standard 

 

之后创建一个repository



public interface EsSpecificActivityRepository extends ElasticsearchRepository<EsSpecificActivity,Integer> {

}

然后我们就调用repository对es数据进行操作了

@Autowired
EsSpecificActivityRepository esSpecificActivityRepository;

可以见到esSpecificActivityRepository有很多对数据进行操作的api,如果有比较复杂的操作可以使用search方法,这里我写了个例子做个参考,查询id  30到89的数据并进行排序,具体就不详细讲了

        SortBuilder sortBuilder = SortBuilders.fieldSort("id").order(SortOrder.ASC);

        BoolQueryBuilder queryBuilder=QueryBuilders.boolQuery();

        RangeQueryBuilder query = QueryBuilders.rangeQuery("id").from("30").to("89");

        queryBuilder.must(query);

        NativeSearchQueryBuilder builder = new NativeSearchQueryBuilder().withQuery(queryBuilder)
               .withSort(sortBuilder);

        SearchQuery searchQuery = builder.build();

        Iterable<EsSpecificActivity> list = esSpecificActivityRepository.search(searchQuery);

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值