栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

java 疑难杂症(三)springboot + spring data + elasticsearch 集成问题

java 疑难杂症(三)springboot + spring data + elasticsearch 集成问题

一 背景描述

spring boot:2.5.3
elasticsearch: 6.2.2 (https://www.elastic.co/cn/downloads/past-releases/elasticsearch-6-2-2)
kibana: 6.2.2 (https://artifacts.elastic.co/downloads/kibana/kibana-6.2.2-windows-x86_64.zip)

使用 sprintdata 集成 elasticsearch 时,先下载的 elasticsearch 和 kibana, 版本是 6.2.2, 然后在项目中集成 elasticsearch, 添加依赖如:


	org.springframework.boot
	spring-boot-starter-data-elasticsearch

在 application.yml 文件 spring 节点下添加数据:

  data:
    elasticsearch:
      repositories:
        enabled: true
      cluster-nodes: 127.0.0.1:9300 # es的连接地址及端口号
      cluster-name: elasticsearch # es集群的名称

然后配置需要用到 elasticsearch 的表,添加 @document, @Id, @Field 等配置,都完成后,启动项目,发现启动失败,报错信息为 400 bad request 等。

二 问题原因

问题发生的原因是 sprintboot, sprint data, elasticsearch 版本不匹配导致的兼容问题,需要版本一致才可以,版本参考:https://docs.spring.io/spring-data/elasticsearch/docs/4.2.4/reference/html/#preface.versions,因为 sprintboot 2.5.3 的 elasticsearch 已经升级到 7.12.1 版本了,我下载的 elasticsearch 6.2.2 版本已经不适用了,7.x 对比 6.x 有了很大的变化,document 的type 属性被废弃了。

三 解决方法

知道问题原因,就好解决了,更改版本使 三者版本匹配就可以正常启动了,在我的项目里,我是更改了 sprintboot 的版本,由 2.5.3 改成了 2.1.3,启动就正常了,问题解决,感觉由 springdata 集成 elasticsearch 的方式容易导致版本兼容问题,或许有可以尝试其他方法集成 elasticsearch。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/701739.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号