SpringBoot2.0整合ElasticSearch5.x

1.前言

网上很多整合教程都是基于SpringBoot1.5的,而SpringBoot1.5只支持2.x版本的ElasticSearch,而我想要使用5.x系的ES,折腾半天终于弄好了,这里记录一下

2.项目环境:

JDK 1.8
Spring Boot 2.0.0.RELEASE
ElasticSearch 5.6.8
Deepin Linux 15.5

3.搭建SpringBoot骨架

用idea创建新项目,勾选web和NoSQL里Elasticsearch选项,等待创建完成即可
然后在pom.xml补充一个依赖(其实SpringBoot2.0之后貌似已经不需要了)

<dependency>
	<groupId>net.java.dev.jna</groupId>
	<artifactId>jna-platform</artifactId>
</dependency>

如果是旧项目的话添加依赖:

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<dependency>
	<groupId>net.java.dev.jna</groupId>
	<artifactId>jna-platform</artifactId>
</dependency>

这里Maven加载Jar包会用点时间,所以我们先来装ES

4.ElasticSearch安装

注意,ES的版本最好下载和项目一致的版本,我之前就是下错了版本然后一直连不上,坑T_T
当然这只是建议,你也可以使用你想用的版本的ES
这里给出一个查看版本的方法,在IDEA编辑器左下部分能够看到我们导入的所有JAR包
导入的jar包
然后我们可以看到所有关于elasticsearch的jar包,可以看到对应es的版本,这里是5.6.8
jar-es
然后我们从官网下载ES

下载地址

下载完成后解压elasticsearch-5.6.8.tar.gz

修改ES配置

修改 config下的elasticsearch.yml
配置 cluster.name、network.host
其他参数如http.port,log等自己按需配置,这里保持默认

cluster.name:suddev
network.host:0.0.0.0 #0.0.0.0为任意ip都可连接
启动ES

cd到elasticsearch的bin目录下

./elasticsearch

5. 配置SpringBoot

编辑application.yml或application.properties

这里有一点想说的是,在elasticsearch中默认9200是http的端口,9300是给java用户的端口,所以我们这里端口写9300

spring:
  data:
    elasticsearch:
      cluster-nodes: 127.0.0.1:9300 #格式 ip:端口 多个节点逗号隔开
      cluster-name: suddev
添加注解

然后在AppAplication.java中(也就是包含SpringBoot的Main方法的那个类)添加注解
@EnableElasticsearchRepositories


@SpringBootApplication
@EnableElasticsearchRepositories(basePackages = "com.suddev.esdemo.repository") \\这里basePackages对应你dao所在包
public class EsDemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(EsDemoApplication.class, args);
    }
}

6.测试

启动SpringBoot,控制台输出一下信息:
可以看见SpringBoot成功连接到ES了
控制台输入

编写DAO,Service,Conntroller

网上教程就很多了,大家可以参考网上教程
这里给个官方文档链接,很有参考价值

官方文档(英文)链接

附Demo源代码 密码: 7qyq

整合这里差不多就结束了,有问题欢迎留言!

7.补充

评论区说遇到org.elasticsearch.client.transport.NoNodeAvailableException这个异常,今天刚好碰到了,折腾一下午终于解决,给出一个解决方案,仅供参考:
SpringBoot整合ElasticSearch报NoNodeAvailableException: None of the configured nodes are available新解决方案

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值