> Linux新闻 >

Elasticsearch Rest Client bboss v5.9.2 发布

The best Elasticsearch Highlevel Rest  Client API-----bboss    v5.9.2 发布。

bboss elasticsearch 是一套基 于query dsl 语法操作和访问分布式搜索引擎 elasticsearch 的 o/r mapping 高性能java开发库,底层基于 es restful api。

主要功能特色

  1. ElasticSearch兼容性:1.x,2.x,5.x,6.x,7.x,+

  2. JDK兼容性: jdk 1.7+

  3. Spring boot兼容性:1.x,2.x

  4. ORM和DSL二者兼顾,类mybatis方式操作ElasticSearch,

  5. 支持SQLJDBC

  6. 提供快速而高效的数据同步导入ES工具(支持DB到Elasticsearch,Elasticsearch到DB,MongoDB到Elastisearch数据同步,后续将支持更多的数据源)

  7. 提供按时间日期ES历史数据清理工具

  8. APM开源产品pinpoint官方Elasticsearch bboss 客户端性能监控插件,插件地址:

     https://github.com/naver/pinpoint/tree/master/plugins/elasticsearch-bboss

v5.9.2 功能改进:

1.增加MetaMap类:MetaMap继承HashMap,为map 增加meta元数据相关的属性信息,参考示例:

        //创建批量创建文档的客户端对象,单实例多线程安全
        ClientInterface clientUtil = ElasticSearchHelper.getRestClientUtil();
        //单文档检索
        MetaMap newDemo = clientUtil.getDocument("demo",//索引表
                "demo",//索引类型
                "1",//文档id
                MetaMap.class
        );
        //打印metamap和返回的文档元数据信息
        System.out.println(newDemo);
        System.out.println("getId:"+newDemo.getId());
        System.out.println("getIndex:"+newDemo.getIndex());
        System.out.println("getNode:"+newDemo.getNode());
        System.out.println("getShard:"+newDemo.getShard());
        System.out.println("getType:"+newDemo.getType());
        System.out.println("getExplanation:"+newDemo.getExplanation());
        System.out.println("getFields:"+newDemo.getFields());
        System.out.println("getHighlight:"+newDemo.getHighlight());
        System.out.println("getInnerHits:"+newDemo.getInnerHits());
        System.out.println("getNested:"+newDemo.getNested());
        System.out.println("getPrimaryTerm:"+newDemo.getPrimaryTerm());
        System.out.println("getScore:"+newDemo.getScore());
        System.out.println("getSeqNo:"+newDemo.getSeqNo());
        System.out.println("getVersion:"+newDemo.getVersion());
        System.out.println("getParent:"+newDemo.getParent());
        System.out.println("getRouting:"+newDemo.getRouting());
        System.out.println("getSort:"+newDemo.getSort());
        System.out.println("isFound:"+newDemo.isFound());
        //列表检索
        ESDatas<MetaMap> data //ESDatas为查询结果集对象,封装了返回的当前查询的List<TAgentInfo>结果集和符合条件的总记录数totalSize
            = clientUtil.searchList("trace-*/_search",//查询操作,查询indices trace-*中符合条件的数据
                                "queryServiceByCondition",//通过名称引用配置文件中的query dsl语句
                                parmas,//查询条件,Map<key,value>
                                MetaMap.class);//指定返回的po对象类型,po对象中的属性与indices表中的文档filed名称保持一致
//获取结果对象列表
        List<MetaMap> demos = data.getDatas();
        //获取总记录数
        long totalSize = data.getTotalSize();

2.修复自定义启动客户端问题:设置数字参数和boolean参数不起作用

3.数据同步工具:增加mongodb到elasticsearch同步功能,工具demo:

https://github.com/bbossgroups/mongodb-elasticsearch

参考文档:mongodb-elasticsearch数据同步使用方法

4.数据同步工具改进:如果同步字段中包含名称为_id的属性,则忽略之,否则会导致数据无法正常导入Elasticsearch

5.增加慢请求服务调用日志信息采集功能,可以将慢dsl打印到日志文件或者发送给接收慢dsl的回调接口函数

增加两个参数:

elasticsearch.slowDslThreshold(慢dsl时间条件参数 )和  elasticsearch.slowDslCallback(接收慢dsl的接口配置)

  slowDslThreshold单位:ms 毫秒

  elasticsearch.slowDslThreshold=10000

  spring boot配置项

spring.elasticsearch.bboss.elasticsearch.slowDslThreshold=10000

 指定接收慢dsl的回调接口函数slowDslCallback,便于自行处理慢dsl信息

  public interface SlowDslCallback {
          void slowDslHandle( SlowDsl slowDsl);
      }

​ slowDslCallback配置:

  elasticsearch.slowDslCallback=org.bboss.elasticsearchtest.crud.TestSlowDslCallback

​ spring boot配置项

spring.elasticsearch.bboss.elasticsearch.slowDslCallback=org.bboss.elasticsearchtest.crud.TestSlowDslCallback

如果没有指定回调处理接口,将直接打印警告信息到日志文件,WARN级别 , 如果dsl过长,需要截取掉部分内容再打印到日志文件中:超过2048的dsl将被截取掉超过的内容,替换为.....,否则调用SlowDslCallback接口方法slowDslHandle传递慢dsl的相关信息:

6.数据同步工具改进:完善增量数据同步机制,增量字段无需排序即可实现增量同步功能,提升同步性能,改进后部分类(比如Context)包路径做了调整,但是api完全兼容,可以到以下地址下载改进后最新的工具:

7.数据同步工具bug修复:解决增量同步状态更新可能存在的不正确问题

8.数据同步工具改进:增加数据同步监控指标数据的采集,参考文档:数据同步任务执行统计信息获取

9.数据同步工具新增功能:elasticsearch到db的数据同步功能,支持全量、增量定时同步,内置jdk timer同步器,支持quartz、xxl-job任务调度引擎,使用参考:

elasticsearch-db数据同步使用方法

10.简化数据同步程序开发调试工作:可以直接在同步程序的main中方法进行同步功能开发和调试

11.Scroll/Slice scroll检索功能改进:支持在hanlder结果回调处理函数中中断scroll/slice croll的执行,参考文档:

https://esdoc.bbossgroups.com/#/Scroll-SliceScroll-api

12.json库fastjackson升级到2.10.0

Elasticsearch bboss使用文档

Elasticsearch bboss版本变更记录

(责任编辑:IT)