2017-02-27 161 views
5

我正試圖將我的Spring Boot應用程序連接到本地elasticsearch 5.2.1實例。當我使用「org.springframework.boot:彈簧引導起動數據elasticsearch」依賴,我面對與「從不支持的版本收到的消息:[2.0.0]最小兼容版本是:[5.0.0]「。我認爲這是由於elasticsearch版本是2.4.4的入門者依賴。所以要解決這個錯誤,我編輯pom.xml屬性,加入elasticsearch.version> 5.2.1/elasticsearch.version>一行。但是,這一次我得到 「java.lang.NoSuchMethodError:org.elasticsearch.client.transport.TransportClient.builder()如何使用elasticsearch 5.2.1配置Spring Boot?

爲了解決這個問題,創建自定義配置類象下面這樣:

@Configuration 
public class ElasticsearchConfiguration { 

@Bean 
public Client client() throws UnknownHostException { 
    TransportClient client = new PreBuiltTransportClient(Settings.EMPTY) 
      .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300)); 

    return client; 
} 

@Bean 
public ElasticsearchTemplate elasticsearchTemplate() throws UnknownHostException { 
    return new ElasticsearchTemplate(client()); 
} 
} 

這一次我得到apache.logging.log4j異常(check here),所以我添加必要的依賴關係。

最後,我得到下面的錯誤,並在那裏停滯。任何人都可以幫我解決這個問題嗎?

嵌套的例外是java.lang.NoClassDefFoundError:組織/ elasticsearch /動作/計數/ CountRequestBuilder

回答

1

我試過相同,收到這個錯誤太爲CountRequestBuilder,原因是CountRequestBuilder類已被棄用,現在刪除從5.x彈性搜索版本,這個類是由SearchRequestBuilder取代可惜spring-data-elasticsearch甚至沒有在罐子的最新版本和CountRequestBuilder在ElasticSearchTemplate使用提供這一點。

我也在尋找一些解決方案。我會發布如果能夠解決。

4

spring-data-elasticsearch GitHub的頁面顯示,它目前支持elasticsearch只到2.4.0版本。

現在你有3種選擇:

  • 等待和希望
  • 結賬pull request
  • 結賬的Dev分支5.0.x的,準備
2

您可以使用elasticsearch的Java API創建傳輸客戶端而不是使用spring-data-elasticsearch。

相關問題