Thebestelasticsearchhighleveljavarestapi-----bboss
bboss是一套基于querydsl语法操作和访问分布式搜索引擎Elasticsearch/Opesearch的o/rmappig高性能开发库,底层直接基于http协议操作和访问Elasticsearch、Opesearch。基于bboss,可以快速编写出访问和操作Elasticsearch/Opesearch的程序代码,简单、高效、可靠、安全。快速开始bboss
https://esdoc.bbossgroups.com/#/quickstartbboss兼容性兼容性:bboss兼容所有版本Elasticsearch、Sprigboot,基于bboss开发的代码,可以无缝对接不同版本的Elasticsearch、Opesearch、SprigbootbbossElasticsearchsprigbootall1.x1.x,2.xall2.x1.x,2.xall3.x1.x,2.xall5.x1.x,2.xall6.x1.x,2.xall7.x1.x,2.xOpesearch兼容性:1.x,2.x,+jdk兼容性:jdk1.7+典型应用场景一行代码插入/修改//添加/修改文档,如果文档id存在则修改,不存在则插入
clietUtil.addDocumet("agetifo",//索引名称agetIfo);//需添加/修改的索引数据对象一行代码分页/高亮检索
ESDatas<TAgetIfo>data//ESDatas为查询结果集对象,封装了返回的当前查询的List<TAgetIfo>结果集和符合条件的总记录数totalSize=clietUtil.searchList("trace-*/_search",//查询操作,查询idicestrace-*中符合条件的数据"queryServiceByCoditio",//通过名称引用配置文件中的querydsl语句traceExtraCriteria,//查询条件封装对象TAgetIfo.class);//指定返回的po对象类型,po对象中的属性与idices表中的文档filed名称保持一致//获取当前页结果对象列表List<TAgetIfo>demos=data.getDatas();//获取总记录数logtotalSize=data.getTotalSize();根据文档id获取文档
Demodemo=clietUtil.getDocumet("demo",//索引表"2",//文档idDemo.class);//指定返回对象类型根据字段直接获取文档
Strigdocumet=clietIterface.getDocumetByField("demo",//索引名称"applicatioName.keyword",//字段名称"blackcatdemo2");//字段值Mapdocumet=clietIterface.getDocumetByField("demo","applicatioName.keyword","blackcatdemo2",Map.class);DemoPodocumet=clietIterface.getDocumetByField("demo","applicatioName.keyword","blackcatdemo2",DemoPo.class);一行代码根据字段值进行分页查找
ESDatas<Map>documets=clietIterface.searchListByField("demo",//索引名名称"applicatioName.keyword",//检索字段名称"blackcatdemo2",//检索值Map.class,//返回结果类型,可以是po对象类型也可以是map类型0,//分页起始位置10);//分页每页记录数//获取当前页结果对象列表List<Map>demos=data.getDatas();//获取匹配的总记录数logtotalSize=data.getTotalSize();一行代码删除文档
clietUtil.deleteDocumet("demo",//索引表"2");//文档id一行代码批量删除文档
//批量删除文档clietUtil.deleteDocumets("demo",//索引表ewStrig[]{"2","3"});//批量删除文档idsapi方法可以指定特定的Elasticsearch集群进行操作所有api可以直接指定数据源操作,指哪打哪,下面展示了在一段代码里面同时操作两个Elasticsearch集群功能:datasourceName1和datasourceName2ESDatas<Demo>esDatas1=clietUtil.searchListWithCluster(datasourceName1,//指定操作的Elasticsearch集群数据源名称"demo1/_search",//demo为索引表,_search为检索操作actio"searchDatas",//esmapper/demo7.xml中定义的dsl语句params,//变量参数Demo.class);//返回的文档封装对象类型ESDatas<Demo>esDatas2=clietUtil.searchListWithCluster(datasourceName2,//指定操作的Elasticsearch集群数据源名称"demo2/_search",//demo为索引表,_search为检索操作actio"searchDatas",//esmapper/demo7.xml中定义的dsl语句params,//变量参数Demo.class);//返回的文档封装对象类型datasourceName1和datasourceName2可是两个相同版本的Elasticsearch,亦可以是两个不同版本的Elasticsearch,bboss在兼容性方面是毋庸置疑的。
快速集成,导入BBossmave坐标:quickstart文档
其他特点
ORM和DSL二者兼顾,类mybatis方式操作ElasticSearch,提供丰富的开发API和开发Demo
采用XML文件配置和管理检索dsl脚本,简洁而直观;提供丰富的逻辑判断语法,在dsl脚本中可以使用变量、脚本片段、foreach循环、逻辑判断、注释;基于可扩展DSL配置管理机制可以非常方便地实现数据库、redis等方式管理dsl;配置管理的dsl语句支持在线修改、自动热加载,开发和调试非常方便
提供Elasticsearch集群节点自动负载均衡和容灾恢复机制,Elasticsearch节点断连恢复后可自动重连,高效可靠
提供Elasticsearch集群节点自动发现机制:自动发现Elasticsearch服务端节点增加和下线操作并变更客户端集群可用节点地址清单
提供http连接池管理功能,提供精细化的http连接池参数配置管理
支持在应用中访问和操作多个Elasticsearch集群,支持在应用中访问和操作不同版本的Elasticsearch集群
支持基于X-Pack和searchguard两种安全认证机制
支持Elasticsearch-SQL-ORM和Elasticsearch-JDBC
提供高效的BulkProcessor处理机制
提供快速而高效的数据同步导入ES工具:支持DB到Elasticsearch,Elasticsearch到DB,MogoDB到Elastisearch数据同步,HBase到Elasticsearch数据同步,Kafka到Elasticsearch数据同步,将支持更多的数据源
提供按时间日期ES历史数据清理工具
源码地址:https://github.com/bbossgroups/bboss-elasticsearchhttps://gitee.com/bboss/bboss-elastic从源码构建https://esdoc.bbossgroups.com/#/bboss-buildElasticsearchDemohttps://esdoc.bbossgroups.com/#/Elasticsearch-demo快速集成和应用普通类型项目集成bboss:commo-project-with-bbosssprigboot项目集成bboss:sprig-booter-with-bboss增删改查开发手册:https://esdoc.bbossgroups.com/#/documet-crud详细开发指南:https://esdoc.bbossgroups.com/#/developmet
评论