官方介绍:bboss是一款高性能elasticsearch ORM开发库, 以类似于mybatis管理和配置sql的方式,采用xml文件管理elasticsearch的dsl脚本,在dsl脚本中可以使用变量、dsl片段、foreach循环、逻辑判断、注释;支持在线修改、自动热加载dsl配置文件,开发和调试非常方便。bboss对原生elasticsearch restful api、elasticsearch java orm api、elasticsearch sql都提供了很好的支持。如果喜欢直接使用query dsl(es的官方语言),但是又不想在代码里面编写冗长的dsl拼接串的话,可以考虑采用 bboss。
因为elasticsearch 官方从6.x版本开始就有计划的让TransportClient退出历史舞台了,因为TransportClient兼容的问题,每次升级elasticsearch对开发人员来说都是一个痛苦的过程。所以官方也建议逐步使用RestClient替换TransportClient。基于这个前提,我在找好用的RestClient的过程中,发现了bboss。下面就我在使用bboss的过程中,记录下我的使用心得。
简单的使用,我这里就不重复写了,这些官方文档里面都写的很清楚了,我只对官方文档中说的不那么清楚的简单的记录一下。
实体类映射
类似于mybatis框架一样,我们也可以用一个实体类对索引文档进行映射,这样可以简化我们对索引文档的日常操作。
@Data
public class Subject{
private String name;
private Integer year;
}
/**
* @JsonInclude(JsonInclude.Include.NON_NULL) Jackson序列化json中去除null字段
*/
@Data
@Accessors(chain = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class MyIndex extends ESBaseData {
@ESId
private String id;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Column(dataformat = "yyyy-MM-dd HH:mm:ss")
@JsonProperty("gmt_create")
private Date gmtCreate;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Column(dataformat = "yyyy-MM-dd HH:mm:ss")
@JsonProperty("gmt_modified")
private Date gmtModified;
/**
* @JsonProperty 实体类属性和doc字段不一样,可以用这个注解
*/
@JsonProperty("main_link")
private String mainLink;
/**
* 嵌套对象字段
*/
@JsonProperty("subject")
private List<Subject> subjects;
}
网友评论