Spring Boot、Elasticsearch和Spring Data Elasticsearch的兼容版本是什么?

3
我一直在使用Spring Boot、Elasticsearch和Spring Data Elasticsearch开发一个简单的Java程序。我能够成功地使用以下版本进行Elasticsearch: 1) Spring Boot 1.3.5 2) Spring-Data-Elasticsearch 1.3.4.RELEASE 3) Elasticsearch 1.3.2
但是,当我升级到以下版本时,我的一个带有@Service注解的服务类显示错误: "The type org.elasticsearch.search.suggest.SuggestBuilder$SuggestionBuilder cannot be resolved. It is indirectly referenced from required .class files".
     1) spring boot 1.5.1.RELEASE
     2) spring-data-elasticsearch 2.1.0.RELEASE
     3) elasticsearch 5.0.1
     4) org.elasticsearch.client.transport 5.1.1

是否是不兼容版本的问题?如果是,请帮我确定Spring Boot、Elasticsearch和Spring Data Elasticsearch的兼容版本。

2个回答

6

由于Spring Data Elasticsearch尚未支持Elasticsearch 5.0,因此不存在兼容的版本集。请参见this issue以跟踪一些支持5.0的工作。

一般来说,与其自己寻找兼容版本,不如让Spring Boot的依赖管理为您处理。如果您覆盖了该依赖项管理以使用依赖项的新主要版本,则有很大可能它无法正常工作。


非常感谢您,Andy。如您所建议的,我已从我的pom文件中删除了所有覆盖版本,并且现在jar版本由Spring Boot管理。 我覆盖了org.elasticsearch.client.transport 5.1.1版本,这对于创建TransportClient对象非常有用。 当我尝试运行我的Spring Boot应用程序时,会出现异常“java.lang.ClassNotFoundException:org.elasticsearch.plugins.NetworkPlugin”。您能帮我理解这个问题吗? - shekar
这是我使用的代码片段,用于创建TransportClient对象: Settings settings = Settings.builder().put("cluster.name", "elasticsearch").build(); TransportClient client = new PreBuiltTransportClient(settings); client.addTransportAddress(new InetSocketTransportAddress(new InetSocketAddress("localhost", 9300))); return client; - shekar
尝试移除PreBuildTransportClient并替换为TransportClient.builder(),类似于以下内容 --> @Bean public Client client() throws UnknownHostException{ Settings settings = Settings.builder() .put("cluster.name", "elasticsearch") .build(); TransportClient client = TransportClient.builder().settings(settings).build() .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("127.0.0.1"), 9200)); return client; } - arielduarte

1

Spring Data ES 3.0.0M4发布版兼容ES 5.0 - 参考 - DATAES-285


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接