在應用Elasticsearch的項目開發中,經常遇到的一個問題是Spring Data Elasticsearch開源組件和Elasticsearch的兼容性問題。
一、Spring Data Elasticsearch 組件
下表顯示了Spring Data release版本兼容的Elasticsearch版,以及其中包含的Spring Data Elasticsearch版本,和Spring Boot版本。參照下面的兼容矩陣,避免不同版本之間的兼容性問題。
其中標註1:表示正在開發中。
下面是Spring Data Elasticsearch 的版本列表,當前正式版本為3.2.5。眾望所歸的Spring Data Elasticsearch新版4.0.0,還處於M4階段。
二、推薦使用Java High Level REST Client
Spring Data Elasticsearch 組件主要是與Spring生態對接,可以在web系統中整合到Spring中使用。Spring Data Elasticsearch 是 Spring Data 的 Community modules 之一,是 Spring Data 對 Elasticsearch 引擎的實現。該組件最大的問題是更新不及時,遠遠落後於Elasticsearch 發佈的速度。
現在存在至少三種Java客戶端:
1. Transport Client
TransportClient 將被Java High-level REST client接口取代。 在 Elasticsearch 7.*版本中將不贊成使用TransportClient,在Elasticsearch 8.0 版本中將被移除,建議使用Java High-level REST Client客戶端。
2. Java High Level REST Client
它基於Low-level REST Client接口,並暴露了特定的API方法,負責處理請求的序列化和響應的反序列化。
3. Java Low Level REST Client
它允許HTTP和Elasticsearch集群通信,並將請求的序列化和響應的反序列化交給用戶自己處理。
關於Java High Level REST Client詳細介紹和演示項目源代碼,可訪問Elasticsearch 7.x 技術專欄。
閱讀更多 軟件架構 的文章