如何使用elasticsearch 5.2.1配置Spring Boot?

时间:2017-02-27 20:25:05

标签: elasticsearch spring-boot spring-data-elasticsearch

我正在尝试将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

4 个答案:

答案 0 :(得分:4)

spring-data-elasticsearch的github页面显示它目前仅支持版本2.4.0的elasticsearch。

现在您有3个选项:

  • 等待并希望
  • 结帐pull request
  • 结帐dev分支5.0.x-prep

答案 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

我也在寻找一些解决方案。如果能够解决,我会发布。