大家一定很熟悉mybatis了,它是一个持久层框架,可以通过简单的XML或注解来配置,映射为数据库中的数据。我们通常是在xml文件中写sql,来操作数据库中的数据。而接下来要讲的bboss elasticsearch就和它类似,大家习惯了之前这个使用mybatis的方式操作数据库了,使用java客户端直接操作elasticsearch会不习惯,所以可以使用bboss来操作elasticsearch。
bboss是一款高性能elasticsearch ORM开发库, 以类似于mybatis管理和配置sql的方式,采用xml文件管理elasticsearch的dsl脚本,在dsl脚本中可以使用变量、dsl片段、foreach循环、逻辑判断、注释;支持在线修改、自动热加载dsl配置文件,开发和调试非常方便。
bboss elasticsearch是一套基于query dsl语法操作和访问分布式搜索引擎elasticsearch的o/r mapping高性能开发库,底层基于es restful api。
SpringBoot整合BBoss Elasticsearch的步骤
1、引入bboss的依赖
<dependency>
<groupId>com.bbossgroups.plugins</groupId>
<artifactId>bboss-elasticsearch-spring-boot-starter</artifactId>
<version>5.1.5</version>
</dependency>
2、配置yml文件
spring:
elasticsearch:
bboss:
elasticsearch:
rest:
hostNames: 127.0.0.1:9200 # elasticsearch的地址
dslfile:
refreshInterval: -1
mapper文件的结构(在配置ClientInterface的时候需要这个路径)
3、在服务提供类注入ClientInterface 引入xml
ClientInterface clientUtil = ElasticSearchHelper.getConfigRestClientUtil("mapper/NoticeMapper.xml");
4、接下来就可以通过clientUtil来操作索引及文档了
比如查询某个文档
ESDatas<NoticeEntity> noticeEntityESDatas = clientUtil.searchList("test11/notice/_search", "selectNoticByTitle", params, NoticeEntity.class);
test11/notice/_search:是path,是执行elasticsearch的命令
params:是传的参数,是个map结构
例如
Map<String, Object> params = new HashMap<>();
params.put("title","华春莹发推讽刺美国政府双标");
selectNoticByTitle:就是xml文件中对应的name
<properties>
<property name="selectNoticByTitle">
<![CDATA[
{
"query": {
"match": {
"title": #[title]
}
}
}
]]>
</property>
</properties>
这样就是类似使用mybatis操作mysql一样的习惯方式来操作elasticsearch了