python elasticsearch orm_国产elasticsearch orm框架 bboss使用技巧

​ 官方介绍: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 subjects;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值