ES之java代码使用(基于bladex框架)

1.引入pom文件

<dependency>
   <groupId>org.elasticsearch</groupId>
    <artifactId>elasticsearch</artifactId>
    <version>6.8.3</version>
</dependency>
<dependency>
     <groupId>org.elasticsearch.client</groupId>
     <artifactId>elasticsearch-rest-high-level-client</artifactId>
     <version>6.8.3</version>
</dependency>

2.创建实体类

@Data
@Document(indexName = UserLstES .INDEX_NAME)
public class UserLstES {

    public static final String INDEX_NAME = "user_lst";
    public static final String INDEX_NAME_SEARCH = "user_lst_search";
    @Id
    @ApiModelProperty(value = "用户id")
    private Long id;

    @Field(type = FieldType.Keyword)
    @ApiModelProperty(value = "用户名称")
    private String userName;

    @Field(type = FieldType.Integer)
    @ApiModelProperty(value = "年龄")
    private Integer age;
    
	@Field(type = FieldType.Integer)
    @ApiModelProperty(value = "身份证号")
    private Integer idCard;

    @Field(type = FieldType.Date, format= DateFormat.date,pattern ="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern ="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @ApiModelProperty(value = "身份证有效期")
    private Date startDate;

    @Field(type = FieldType.Date, format= DateFormat.date,pattern ="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern ="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @ApiModelProperty(value = "身份证有效期至")
    private Date endDate;
 }

3.存入ES

@Component
public class UserLstESRepository extends BaseEsRepository<UserLstES,Long> {

}
List<UserLstES> UserLstESList = Lists.newArrayList();
UserLstES  userLstES= new UserLstES();
userLstES.setUserName("1");
UserLstESList.add(userLstES);
// 批量保存ES
boolean result =userLstESRepository.batchSave(UserLstESList, UserLstES.INDEX_NAME);

4.查询ES

BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
queryBuilder.must(QueryBuilders.termsQuery("age", age))
			.must(QueryBuilders.boolQuery().should(QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery("startDate").to(DateUtil.formatNow("yyyy-MM-dd HH:mm:ss")))
                                            .filter(QueryBuilders.rangeQuery("endDate").from(DateUtil.formatNow("yyyy-MM-dd HH:mm:ss")))));

List<UserLstES> esList= userLstESRepository.listSearch(UserLstES.INDEX_NAME, queryBuilder , null, null, null);

5.删除ES

 BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
        queryBuilder.must(QueryBuilders.termsQuery("age", 12));
        // 客户删除ES
        userLstESRepository.deleteByQuery(UserLstES.INDEX_NAME, queryBuilder, 1, TimeValue.timeValueSeconds(10));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
小钗有幸进入框架组做webapp的框架开发,并且基于框架的业务频道用于生产,各频道遍地开花,取得了不错的成绩, 但是,随着业务的快速迭代,框架为满足业务需求做了很多业务的事情,代码中也慢慢出现了坏味道,并且会发现有一些设计不合理的地方。 想在工作中做调整基本不可能,所依赖的第三方库搞掉也有很大的风险。这个时候小钗就萌生出开发出一套干净的轻webapp框架的想法,于是该框架便出现了。 诚然,此框架比不上Backbone,比不了anglarJS,甚至本身也会有一些问题,但是作为初步接触前端的同学,或者想在前端看到一些设计思想的同学,该框架还是有他一些优势。而且这个代码主要用于学习交流,我们带着看看不吃亏的想法,还是可以接触一下他的嘛!!!支持情况该框架是移动端框架,主要支持IOS6 、android4 框架发展第一期-MVC该框架第一期的目标是简单的webapp MVC的实现,现在也基本实现了,app支持hashChange与pushState两种方式做路由加载view,对此有兴趣的同学可以看看helloWord 关于app与页面级View的关系如下:第二期-通用工具框架第二期的想法是,完善本身一些通用的东西,比如UI组件或者简单的flip手势工具等,这里小钗不是专业的前端,就直接从线上将公司的CSS Down下来了,也用了他的Dom结构 但是,整个组件的扩展非常方便,有兴趣的同学看看UI一块的代码,UI的继承关系如下:第三期-ABTesting框架第三期目标是实现前端ABTesting方案第四期-ipad适配框架第四期的目标是一套业务代码,可以同时用于mobile与ipad第五期-Hybrid框架第五期目标是实现Hybrid交互适配,由于小钗本身不懂native开发所以此方案要靠后随机期-疑难杂症框架还会单开一个频道做一些疑难杂症处理,比如: ① fixed问题 ② 区域滚动问题 ③ app唤醒 ④ History路径问题等更多信息DEMO想简单看看demo的朋友请到:http://yexiaochai.github.io/blade/ 标签:blade

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小张不嚣张@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值