elasticsearch restful client 详细例子及源码封装(包含rest-high-level-api和rest-low-level-api)

工具介绍:

es-rest-client,github地址:es-rest-client
从java transport client转化成java restful client的转换器,对restful client进行了部分封装,最大程度减少业务代码适配带来的额外工作量,部分分支做了跨es大版本的兼容


分支说明:

 

main与1.0.0-restful-RELEASE_7.9.0都是基于elasticsearch7.9.0的restful client进行开发的,适用于访问7.X的elasticsearch  
1.0.0-restful-RELEASE_6.6.2都是基于elasticsearch6.6.2的restful client进行开发的,适用于访问6.X的elasticsearch  
1.0.0-restful-RELEASE_unified是基于6.6.2的restful client,并在修改了部分restful client的源码来满足跨版本兼容6.X和7.X两个大版本的elasticsearch而研发的分支用于满足特定的需求,里面涉及到修改源码的restful client,如果需要该部分源码和jar包,可以给我留言或者发邮件tao_chongyin@163.com。  
兼容版本的相关需求以及说明可以参考我的博文:一文讲解Elasticsearch java restful api 跨版本兼容解决方案


使用方法:


可以通过springboots或者java自带的方式进行es-client的初始化,然后调用方式,该工具最大的好处就是尽量兼容java transport api,减少适配的工作量,比如:  
transport client的search代码: 

SearchResponse searchResponse = esClient.getClient().prepareSearch(indexType)  
        .setTypes(commonBaseService.getIndexTypeName())  
        .setQuery(boolQueryBuilder)  
        .addAggregation(field)  
        .execute().actionGet();


而当前工具的search代码为: 

SearchResponse searchResponse = esClient.prepareSearch(indexType)  
        .setTypes(commonBaseService.getIndexTypeName())  
        .setQuery(boolQueryBuilder)  
        .addAggregation(field)  
        .execute().actionGet();


至于其他的request我已经在代码中留下了扩展的接口,大家可以根据自己的需求进行扩展  
另外操作集群相关的api以及未在rest-high-level-api中未实现的方法我已经通过rest-low-level-api进行了实现,并经行了封装  
之所以使用rest-low-level-api封装了部分代码是为了保证这部分可能受版本影响较大且使用频率和方式固定的api在跨版本的时候保持比较好的兼容性和稳定性

至于有其他问题或者需求可以留言讨论,也欢迎大家一起维护相关的代码
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值