高性能 Elasticsearch Java RestClient bboss v7.1.6 发布

来源: 投稿
作者: bboss
2024-02-22 09:18:00

高性能 Elasticsearch Java RestClient bboss v7.1.6 发布,ES小白分分钟上手,功能丰富,涵盖Elasticsearch所有功能,多集群多数据源,自动索引托管,多种分页机制,傻瓜级CRUD,脚本,sql,jdbc,高亮,权重,聚合,IP地理位置解析,父子嵌套等,应有尽有。

主要特点:代码简洁,性能高效,客户端负载容灾,兼容性好,易于集成

  1. A highlevel rest client.
  2. A high performence o/r mapping rest client.
  3. A dsl and sql rest client.
  4. Support Elasticsearch 1.x,2.x,5.x,6.x,7.x,8.x,+
  5. Support Opensearch 1.x,2.x,+
  6. Support Spring boot 1.x,2.x,3.x
  7. 可在普通 maven 项目和其他 java 工程中快速集成和使用 bboss
  8. 提供丰富的 crud、分页查询(from-size/scroll/slicescroll/searchafter)、批处理(同步 / 异步)API
  9. API 返回的结果可以是原始 json 报文、PO 对象、List 集合、Map 对象以及分页查询、聚合查询、高亮检索封装对象,亦可以方便获取索引文档 id、score、index、version、type 等文档元数据信息

v7.1.6 功能改进

  1. Elasticsearch Client增加对spring boot3的支持,并提供相关案例工程:

    https://gitee.com/bboss/springboot3-elasticsearch-webservice

    https://gitee.com/bboss/eshelloword-spring-boot3-starter

    https://gitee.com/bboss/db-db-job3

  2. 升级若干第三方依赖开源包版本

快速开始bboss

一般项目导入下面的maven坐标即可:

        <dependency>
            <groupId>com.bbossgroups.plugins</groupId>
            <artifactId>bboss-datatran-jdbc</artifactId>
            <version>7.1.6</version>
        </dependency>

spring boot1.x,2.x项目还需要导入下面的maven坐标:

        <dependency>
            <groupId>com.bbossgroups.plugins</groupId>
            <artifactId>bboss-elasticsearch-spring-boot-starter</artifactId>
            <version>7.1.6</version>
        </dependency>

spring boot 3.x 项目还需要导入下面的maven坐标:

        <dependency>
            <groupId>com.bbossgroups.plugins</groupId>
            <artifactId>bboss-elasticsearch-spring-boot3-starter</artifactId>
            <version>7.1.6</version>
        </dependency>

获取客户端组件ClientInterface实例

通过ElasticSearchHelper获取 elasticsearch rest client api 实例:

//创建加载配置文件的客户端实例,单实例多线程安全
ClientInterface clientUtil = ElasticSearchHelper.getConfigRestClientUtil("esmapper/demo.xml");
//创建直接操作dsl的客户端实例,单实例多线程安全
ClientInterface clientUtil = ElasticSearchHelper.getRestClientUtil() ;

一行代码插入/修改

// 添加 / 修改文档,如果文档 id 存在则修改,不存在则插入

clientUtil.addDocument("agentinfo",//索引名称
                data);//需添加/修改的索引数据对象,data可以是一般的PO对象,也可以是Map对象

一行代码批量插入/修改文档

// 添加 / 修改文档,如果文档 id 存在则修改,不存在则插入

List<AgentInfo> agentInfos = ....;
clientUtil.addDocuments("agentinfo",//索引名称
                datas);//需批量添加/修改的索引数据对象集合,datas可以是一般的PO对象集合,也可以是Map对象集合

一行代码分页 / 高亮检索

ESDatas<TAgentInfo> data //ESDatas为查询结果集对象,封装了返回的当前查询的List<TAgentInfo>结果集和符合条件的总记录数totalSize
            = clientUtil.searchList("trace-*/_search",//查询操作,查询indices trace-*中符合条件的数据
                                "queryServiceByCondition",//通过名称引用配置文件中的query dsl语句
                                traceExtraCriteria,//查询条件封装对象
                                TAgentInfo.class);//指定返回的po对象类型,po对象中的属性与indices表中的文档filed名称保持一致
//获取当前页结果对象列表
        List<TAgentInfo> demos = data.getDatas();
        //获取总记录数
        long totalSize = data.getTotalSize();

根据文档 id 获取文档

Demo demo = clientUtil.getDocument("demo",//索引表
      "2",//文档id
      Demo.class);//指定返回对象类型

参考文档:

https://esdoc.bbossgroups.com/#/quickstart

https://esdoc.bbossgroups.com/#/document-crud

https://esdoc.bbossgroups.com/#/common-project-with-bboss

https://esdoc.bbossgroups.com/#/spring-booter-with-bboss

展开阅读全文
点击加入讨论🔥(1) 发布并加入讨论🔥
1 评论
2 收藏
分享
返回顶部
顶部