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

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

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。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5701850.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存