SpringBoot集成 Spring-Data-ElasticSearch

Elasticsearch Java API有四類client連接方式

  • TransportClient(不推薦)
  • RestClient
  • Jest(不推薦)
  • Spring Data Elasticsearch

其中TransportClient和RestClient是Elasticsearch原生的api。TransportClient可以支持2.x,5.x版本,TransportClient將會在Elasticsearch 7.0棄用並在8.0中完成刪除,替而代之,我們使用Java High Level REST Client,它使用HTTP請求而不是Java序列化請求。
Jest是Java社區開發的,是Elasticsearch的Java Http Rest客戶端;
Spring Data Elasticsearch是spring集成的Elasticsearch開發包。

建議:TransportClient將會在後面的版本中棄用,因此不推薦後續使用;而Jest由於是社區維護,所以更新有一定延遲,目前最新版對接ES6.3.1,近一個月只有四個issue,說明整體活躍度較低,因此也不推薦使用;Spring Data Elasticsearch主要是與Spring生態對接,可以在web系統中整合到Spring中使用。目前比較推薦使用官方的高階、低階Rest Client,官方維護,比較值得信賴。本文主要介紹RestClient,其他的只做簡單概述。

Java與ElasticSearch連接的兩種方式
(1)使用Transport與ElasticSearch建立連接
(2)使用SpringDataElasticSearch連接連接

兩種方式的優缺點
(1)優點:脫離框架,集成過程中不需要考慮與Spring的版本兼容問題,容易集成
缺點:使用原生API操作ES,代碼量大,撰寫困難
(2)優點:將原生API進行封裝,提供了ElasticsearchRepository,操作ES非常簡單,與JPA同理
缺點:出生於Spring家族,與SpringBoot,SpringData版本容易衝突

參考資料

Elasticsearch 6.4基本操作 - Java版
https://www.cnblogs.com/swordfall/p/9981883.html
SpringBoot整合Elasticsearch
https://blog.csdn.net/chen_2890/article/details/83895646

https://www.cnblogs.com/swordfall/p/9981883.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章