Elasticsearch Rest Client bboss v6.7.3 发布,版本变更记录:
- 处理flushsync方法在Elasticsearch8的兼容性问题 ,增加获取elasticsearch版本号方法
- jdk 17兼容性改进
- 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 服务器地址和认证(可选)配置即可
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();
0
spring boot 配置
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();
1
还没有评论,来说两句吧...