elasticsearch 作為一個火熱的全文搜索引擎,支持眾多客戶端;
我們可能使用 postman / curl 等工具直接發送請求給es 進行調試;
也可能基於 kibana 或者 head 插件進行查詢工作;
而真正落地到生產上,總歸是要有一個客戶端的。看看java有哪些?
撇開 spring 或者其他框架對客戶端的2次封裝,實際上官方提供了2套java客戶端(基於es 7.5版本)
第一種: Java Low Level REST 客戶端:
官方提供的 低層 客戶端; 通過http與 es集群交互,但是 序列化和反序列化的步驟 留給了用戶自己處理,兼容所有 es 版本;
第二種 : Java High Level REST 客戶端:
在第一種之上進行了封裝, 提供了一些特定的api方法,直接處理好了 序列化和反系列化的步驟,但是客戶端需要跟 es 版本一致。
實際上es是基於json來結構化的,這個序列化和反序列化的過程其實很容易,我們可以選擇 FastJSON,Jackson 等現成的工具進行操作;所以實際上項目中 兩者皆有,而第一種用的更多一些。
大家可以按照實際情況自行選擇,沒有對錯之分。
閱讀更多 架構漫談 的文章