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。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)