bboss-elasticsearch v6.7.3 发布

来源: 投稿
作者: bboss
2022-09-05 09:25:00

Elasticsearch Rest Client bboss v6.7.3 发布,版本变更记录:

  1. 处理flushsync方法在Elasticsearch8的兼容性问题 ,增加获取elasticsearch版本号方法
  2. jdk 17兼容性改进
  3. Elasticsearch客户端改进:增加ESMatchedQueries注解,用于绑定返回name指定的命名匹配条件数组String[],参考文档:元数据注解

bboss elasticsearch 是一套基于 query dsl 语法操作和访问分布式搜索引擎 elasticsearch 的 o/r mapping 高性能java开发库,底层基于 es restful api。基于 bboss elasticsearch,可以快速编写出访问和操作 elasticsearch 的程序代码,简单、高效、可靠、安全。

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

快速开始 bboss

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

bboss 兼容性

兼容性:bboss 兼容所有版本 Elasticsearch、Spring boot

bboss Elasticsearch spring boot
all 1.x 1.x,2.x
all 2.x 1.x,2.x
all 3.x 1.x,2.x
all 5.x 1.x,2.x
all 6.x 1.x,2.x
all 7.x 1.x,2.x

jdk 兼容性:jdk 1.7+

代码简洁

一行代码插入 / 修改

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

clientUtil.addDocument("agentinfo",//索引名称
				agentInfo);//需添加/修改的索引数据对象

一行代码分页 / 高亮检索

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);//指定返回对象类型

 根据字段直接获取文档

String document = clientInterface.getDocumentByField("demo",//索引名称
                  "applicationName.keyword",//字段名称
                  "blackcatdemo2");//字段值

一行代码根据字段值进行分页查找

ESDatas<Map> documents = clientInterface.searchListByField("demo",//索引名名称
                                          "applicationName.keyword", //检索字段名称
                                          "blackcatdemo2",//检索值
                                           Map.class,  //返回结果类型,可以是po对象类型也可以是map类型
                                           0,  //分页起始位置
                                           10); //分页每页记录数
//获取当前页结果对象列表
        List<Map> demos = data.getDatas();
        //获取匹配的总记录数
        long totalSize = data.getTotalSize();

一行代码删除文档

clientUtil.deleteDocument("demo",//索引表
          "2");//文档id

一行代码批量删除文档

//批量删除文档
        clientUtil.deleteDocuments("demo",//索引表
                new String[]{"2","3"});//批量删除文档ids

所有 api 可以直接指定 Elasticsearch 集群数据源操作,指哪打哪:

ESDatas<Demo> esDatas = 
            clientUtil.searchListWithCluster(datasourceName,//指定操作的Elasticsearch集群数据源名称
                  "demo/_search",//demo为索引表,_search为检索操作action
            "searchDatas",//esmapper/demo7.xml中定义的dsl语句
            params,//变量参数
            Demo.class);//返回的文档封装对象类型

易于集成

快速集成,导入 BBoss maven 坐标:

    <dependency>
        <groupId>com.bbossgroups.plugins</groupId>
        <artifactId>bboss-elasticsearch-rest-jdbc</artifactId>
        <version>6.7.3</version>
    </dependency>

如果是 spring boot 项目,还需导入以下 maven 坐标:

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

快速配置,在 application.properties 文件中增加 Elasticsearch 服务器地址和认证(可选)配置即可

#elasticsearch.rest.hostNames=10.180.211.27:9200,10.180.211.28:9200,10.180.211.29:9200 
elasticsearch.rest.hostNames=10.21.20.168:9200

#x-pack or searchguard security authentication and password configuration

elasticUser=elastic
elasticPassword=changeme

spring boot 配置

spring.elasticsearch.bboss.elasticsearch.rest.hostNames=127.0.0.1:9200
#spring.elasticsearch.bboss.elasticsearch.rest.hostNames=10.180.211.27:9200,10.180.211.28:9200,10.180.211.29:9200 

##support x-pack and searchguard

spring.elasticsearch.bboss.elasticUser=elastic

spring.elasticsearch.bboss.elasticPassword=changeme

 

展开阅读全文
点击引领话题📣 发布并加入讨论🔥
0 评论
4 收藏
分享
返回顶部
顶部