The best Elasticsearch Highlevel Rest Client API-----bboss v6.3.1 发布。
bboss elasticsearch 是一套基 于query dsl 语法操作和访问分布式搜索引擎 elasticsearch 的 o/r mapping 高性能java开发库,底层基于 es restful api。
主要功能特色
-
ORM和DSL二者兼顾,类mybatis方式操作ElasticSearch,提供丰富的开发API和开发Demo
-
采用XML文件配置和管理检索dsl脚本,简洁而直观;只需编写好dsl,放入xml配置文件,通过bboss api完成相应的检索查询操作即可;提供丰富的逻辑判断语法,在dsl脚本中可以使用变量、脚本片段、foreach循环、逻辑判断、注释;基于可扩展DSL配置管理机制可以非常方便地实现数据库、redis等方式管理dsl;配置管理的dsl语句支持在线修改、自动热加载,支持在线控制将运行时dsl打印到日志文件功能,开发和调试非常方便
-
提供Elasticsearch集群节点自动负载均衡和容灾恢复机制,Elasticsearch节点断连恢复后可自动重连,高效可靠
-
提供Elasticsearch集群节点自动发现机制:自动发现Elasticsearch服务端节点增加和下线操作并变更客户端集群可用节点地址清单;提供api自定义发现Elasticsearch节点发现机制
-
提供http 连接池管理功能,提供精细化的http连接池参数配置管理
-
支持在应用中访问和操作多个Elasticsearch集群,每个Elasticsearch集群的版本可以不同
-
支持基于X-Pack和searchguard两种安全认证机制
-
支持Elasticsearch-SQL-ORM和Elasticsearch-JDBC
-
提供高效的BulkProcessor处理机制
-
提供快速而高效的数据同步导入ES工具,支持增、删、改数据同步:支持DB到Elasticsearch,Elasticsearch到DB,MongoDB到Elastisearch数据同步,HBase到Elasticsearch数据同步,Kafka到Elasticsearch数据同步,DB到DB之间数据同步,后续将支持更多的数据源
-
提供按时间日期ES历史数据清理工具
-
APM开源产品pinpoint官方Elasticsearch bboss 客户端性能监控插件,插件地址: https://github.com/naver/pinpoint/tree/master/plugins/elasticsearch-bboss
-
与Elasticsearch、Spring boot、jdk兼容性
| 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+
v6.3.1 功能改进
- 增加
evalConfigDsl方法,使用params中的参数变量,解析配置文件中dslName对应的dsl语句,并返回解析出来的dsl
ClientInterface util = (ConfigRestClientUtil) ElasticSearchHelper.getConfigRestClientUtil("demo7.xml");
Map params = new HashMap();
params.put("aaa","_&/+\"\\.");
System.out.println(util.evalConfigDsl("testesencode",params));
2.可自定义采集dsl执行性能数据:增加dsl输出组件logDslCallback 通过组件logDslCallback,通过回调接口方法可以自定义采集dsl的执行信息
public void logDsl(LogDsl logDsl);
参数LogDsl封装了以下信息
/**
* 慢dsl输出阈值
*/
private int slowDslThreshold;
/**
* elasticsearch rest http服务请求地址
*/
private String url;
/**
* http request method:post,get,put,delete
*/
private String action;
/**
* request handle elapsed ms
*/
private long time;
/**
* elasticsearch dsl
*/
private String dsl;
/**
* request handle begin time.
*/
private Date startTime;
/**
* request handle end time.
*/
private Date endTime;
/**
* 0 - dsl执行成功
* 1 - dsl执行异常
*/
private int resultCode;
使用方法: 组件LogDslCallback实现接口org.frameworkset.elasticsearch.client.LogDslCallback 然后在配置文件中进行配置:
非spring boot项目
elasticsearch.logDslCallback=org.frameworkset.elasticsearch.client.LoggerDslCallback
springboot项目
spring.elasticsearch.bboss.elasticsearch.logDslCallback=org.frameworkset.elasticsearch.client.LoggerDslCallback
3. 将SlowDslCallback和LogDslCallback两个接口合并,保留接口LogDslCallback
更多版本变更记录访问
Elasticsearch bboss使用文档