ES: 分页查询

朴灿烈づ我的快乐病毒、 2022-12-14 06:09 269阅读 0赞
  1. //查询100条需要更新的project信息
  2. public List<Project> getTopOutdatedProjectFromES(int size) {
  3. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  4. String str1 = "2020-1-1 0:0:0";
  5. Date time1 = null, time2 = null;
  6. try {
  7. time1 = sdf.parse(str1);
  8. Calendar calendar = Calendar.getInstance();
  9. calendar.setTime(new Date());
  10. calendar.add(Calendar.MINUTE, -120);
  11. time2=calendar.getTime();
  12. } catch (Exception ex) {
  13. log.info(ex.getMessage());
  14. }
  15. BoolQueryBuilder bqr1=QueryBuilders.boolQuery()
  16. .must(QueryBuilders.existsQuery("projectMemberUpdatingTime"))
  17. .must(QueryBuilders.rangeQuery("projectMemberUpdatingTime").from(time1).to(time2));
  18. BoolQueryBuilder bqr2=QueryBuilders.boolQuery()
  19. .mustNot(QueryBuilders.existsQuery("projectMemberUpdatingTime"));
  20. BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
  21. boolQueryBuilder.should(bqr1);
  22. boolQueryBuilder.should(bqr2);
  23. QueryBuilder queryBuilder = QueryBuilders.boolQuery()
  24. .mustNot(QueryBuilders.termQuery(DEL_FLAG, true))
  25. .must(QueryBuilders.existsQuery("deptInfoListMap"))
  26. .must(boolQueryBuilder)
  27. ;
  28. PageRequest page = new PageRequest(0, size);
  29. List<Project> projects = Lists.newArrayList(projectRepository.search(queryBuilder, page));
  30. return projects;
  31. }

发表评论

表情:
评论列表 (有 0 条评论,269人围观)

还没有评论,来说两句吧...

相关阅读

    相关 查询

    AngularJS+Bootstrap 分页功能实现,同时支持模糊查询分页 发表于2017/9/11 20:18:56  209人阅读 因为项目的需要需要实现页面的分页

    相关 查询

    CURD- 1. 添加用户 表单项的name,JavaBean的属性名,数据库表的字段名,建议保持一致 注意:提交的表单中有中文,要解决中文参数乱码问题

    相关 es

    Elasticsearch中数据都存储在分片中,当执行搜索时每个分片独立搜索后,数据再经过整合返回。那么,如何实现分页查询呢? 按照一般的查询流程来说,如果我想查询前10条数