2017-02-09 110 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

相關問題