我正在尝试将Spring Boot应用程序连接到本地elasticsearch 5.2.1实例。当我使用“ org.springframework.boot:spring-boot-starter-data-elasticsearch ”依赖时,我面对“从不支持的版本收到的消息:[2.0.0]最小兼容版本是:[5.0.0] “。我认为这是由于elasticsearch版本在启动器依赖中是2.4.4。因此,要解决此错误,我可以通过添加 elasticsearch.version> 5.2.1 / elasticsearch.version> 行来编辑pom.xml属性。但是这次我得到了 “ java.lang.NoSuchMethodError:org.elasticsearch.client.transport.TransportClient.builder()”
要解决此问题,我创建自定义配置类,如下所示:
>=
这次我得到apache.logging.log4j例外(check here)所以我添加了必要的依赖项。
最后我得到了以下错误并且在那里停留了。任何人都可以帮我解决这个问题吗?
嵌套异常是java.lang.NoClassDefFoundError:org / elasticsearch / action / count / CountRequestBuilder
答案 0 :(得分:4)
spring-data-elasticsearch的github页面显示它目前仅支持版本2.4.0的elasticsearch。
现在您有3个选项:
答案 1 :(得分:3)
您需要使用Spring Boot 2.查看我的spring-boot-elasticsearch-5.x示例。
答案 2 :(得分:2)
您可以使用elasticsearch java api创建传输客户端,而不是使用spring-data-elasticsearch。
答案 3 :(得分:1)
我尝试了同样的问题并为CountRequestBuilder
获取了该错误,原因是CountRequestBuilder
类已被弃用并且现在从5.x弹性搜索版本中移除,该类被{{1}替换但遗憾的是SearchRequestBuilder
即使在最新版本的jar中也不提供此功能,并且在{ElasticSearchTemplate中使用spring-data-elasticsearch
。
我也在寻找一些解决方案。如果能够解决,我会发布。