2017-02-09 112 views
1

我一直在开发一个简单的使用spring引导,弹性搜索和弹性数据弹性搜索的java编程。兼容版本的Spring引导,elasticsearch和弹簧数据elasticsearch

我能够做成功弹性搜索下方版本 1)春季启动1.3.5 2)弹簧数据elasticsearch 1.3.4.RELEASE 3)elasticsearch 1.3.2

但是当我升级到了下面的版本,与@Service注释显示错误标注为

我的服务类的一个“类型 org.elasticsearch.search.suggest.SuggestBuilder $ SuggestionBuilder 不能得到解决。它是间接引用从要求d .class 文件“。

 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 

是不兼容verions问题?如果是的话,请帮助我弹簧引导,弹性搜索和弹簧数据弹性搜索的兼容版本。

回答

4

由于Spring Data Elasticsearch目前还不支持Elasticsearch 5.0,因此没有兼容的版本。请参阅this issue这是跟踪一些支持5.0的工作。

一般来说,您不应该试图自己找到兼容的版本,您应该让Spring Boot的依赖管理为您负责。如果您正在重写该依赖关系管理以使用新的主要版本的依赖关系,则很可能无法正常工作。

+0

非常感谢你安迪。 正如您建议从我的pom文件中删除所有重写的版本,并且jar版本现在由spring引导进行管理 overidden org.elasticsearch.client.transport 5.1.1版本对于创建TransportClient对象很有用。 当iam试图运行我的spring启动应用程序,得到异常为“java.lang.ClassNotFoundException:org.elasticsearch.plugins.NetworkPlugin”。请你帮我理解这个问题。 – shekar

+0

这是iam用于创建TransportClient对象的一段代码 \t \t \t Settings settings = Settings.builder()。put(“cluster.name”,“elasticsearch”)。build(); \t TransportClient client = new PreBuiltTransportClient(settings); (新的InetSocketAddress(“localhost”,9300)));这个新的InetSocketTransportAddress(new InetSocketAddress(“localhost”,9300))); \t返回客户端; – shekar

+0

尝试删除PreBuildTransportClient和替换只是TransportClient.builder()..,这样的事情 - > @Bean \t公共Client客户端()抛出的UnknownHostException { \t \t \t \t \t \t \t \t \t设置设置=设置.builder() \t \t \t \t .put(“cluster。名”, “elasticsearch”) \t \t \t \t .build(); \t \t TransportClient客户= TransportClient.builder()设定(设置).build() \t \t .addTransportAddress(新InetSocketTransportAddress(InetAddress.getByName( “127.0.0.1”),9200)); \t \t \t return client; \t} – arielduarte

0

春数据ES 3.0.0M4版本与ES 5.0兼容 - 参考文献 - DATAES-285

相关问题