SearchSourceBuilder 使用说明
参考:https://www.cnblogs.com/reycg-blog/p/9946821.html@Override
public List<String> baseProductShopNotExistEsSearch(ReqBaseProductShopPageEsQueryVO reqVO) {try {SearchRequest searchRequest = new SearchRequest(EsOperateTables.BASE_PRODUCT_SHOP_SAP.getAlias());SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();sourceBuilder.fetchSource("shop_code", null);//过滤门店编码为null数据Collection<String> ids = reqVO.getIds();if (CollectionUtils.isNotEmpty(ids)) {ids=ids.stream().distinct().collect(Collectors.toList());sourceBuilder.query(QueryBuilders.termsQuery(EsUtils.ID, ids));//根据ID查询}else{throw new RRException("请求参数不能为空");}sourceBuilder.timeout(TimeValue.timeValueMinutes(2L));sourceBuilder.size(new Long(ConstantsUtils.QueryPartams.MAX_RESULT_COUNT).intValue());//分页量sourceBuilder.sort(EsUtils.ID, SortOrder.DESC);//排序searchRequest.source(sourceBuilder);//scroll 分页搜索Scroll scroll = new Scroll(TimeValue.timeValueMinutes(1L));searchRequest.scroll(scroll);SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);String scrollId = searchResponse.getScrollId();SearchHit[] searchHits = searchResponse.getHits().getHits();List<String> mapList = Lists.newArrayList();ClearScrollRequest clearScrollRequest = new ClearScrollRequest();while (true) {if(StringUtils.isNotBlank(scrollId)){clearScrollRequest.addScrollId(scrollId);}if(searchHits == null || searchHits.length == 0){break;}Arrays.stream(searchHits).forEach(hit -> mapList.add(hit.getId()));SearchScrollRequest scrollRequest = new SearchScrollRequest(scrollId);scroll = new Scroll(TimeValue.timeValueMinutes(1L));scrollRequest.scroll(scroll);searchResponse = restHighLevelClient.scroll(scrollRequest, RequestOptions.DEFAULT);scrollId = searchResponse.getScrollId();searchHits = searchResponse.getHits().getHits();}ClearScrollResponse clearScrollResponse = restHighLevelClient.clearScroll(clearScrollRequest, RequestOptions.DEFAULT);boolean succeeded = clearScrollResponse.isSucceeded();if(!succeeded){throw new RRException("清除es游标失败");}if(CollectionUtils.isNotEmpty(mapList)){return Lists.newArrayList(CollectionUtils.disjunction(ids,mapList));}else{return Lists.newArrayList(ids);}} catch (Exception e) {log.error(e.getMessage());throw new RRException(e.getMessage());}
}

记录一次es商品门店查询,关键字SearchSourceBuilder相关推荐

  1. ES 查询关键字(match, term, range,terms)、组合多查询(must, should, must_not,filter)、分页、排序sort、高亮highlight

    一.常用查询关键字 1. match 查询 match查询会将搜索词分词,再与目标查询字段进行匹配,若分词中的任意一个词与目标字段匹配上,则可查询到. { "match": { & ...

  2. es解决只能查询10000条数据方案

    引言 在使用es进行数据查询时,由于es官方默认限制了索引一次性最多只能查询10000条数据,查询第10001条数据开始就会报错, 错误的内容大致为:Result window is too larg ...

  3. 实战 Java 第10天:商品分页查询

    实战 Java 第10天:商品分页查询 前言 一.添加pagehelper相关依赖 二.在 ProductService 类中添加接口 三.在 ProductMapper 类中添加接口 四.增加 sq ...

  4. MySQL表查询关键字

    文章目录 对表的SQL语句补充 表的查询关键字 查询关键字之select与from 查询关键字之where筛选 查询关键字之group by分组 查询关键字之having过滤 查询关键字之distin ...

  5. es java 模糊查询_java使用elasticsearch进行模糊查询-已在项目中实际应用

    java使用elasticsearch进行模糊查询 使用环境上篇文章本人已书写过,需要maven坐标,ES连接工具类的请看上一篇文章,以下是内容是笔者在真实项目中运用总结而产生,并写的是主要方法和思路 ...

  6. ES中SQL查询详解

    一.Elasticsearch SQL简介 Elasticsearch SQL 是一个 X-Pack 组件,它允许对 Elasticsearch 实时执行类似 SQL 的查询.无论是使用 REST 接 ...

  7. Elasticsearch基本查询关键字介绍

    话不多说,开整 term(完全匹配) {"query": {"bool": {"must": [{"term": { # ...

  8. week7 day3 记录相关操作之单表查询

    week7 day3 记录相关操作之单表查询 1.1 单表查询的用法 1.2 关键字的执行优先级(重点) 1.3 简单查询 1.4 WHERE约束 1.5 分组查询GROUP BY 1.6 HAVIN ...

  9. Mysql外键与查询关键字

    今日内容概要 1 > 自增特性 2 > 约束条件之外键 2.1 > 外键简介 2.2 > 外键关系 2.2.1 > 一对多 2.2.2 > 多对多 2.2.3 &g ...

  10. Servlet+JDBC+商品列表查询和修改

    代码仓库+文档:https://gitee.com/DerekAndroid/ServletJDBC.git 分析: 效果: http://localhost:8080/ServletJDBC_war ...

最新文章

  1. 智慧城市 android,基于Android系统的智慧城市服务客户端的设计与实现
  2. UVa563 - Crimewave
  3. [轉]子窗口和父窗口的函数或对象能否相互访问
  4. java getresourceasstream null_java踩坑记-getResourceAsStream
  5. verilog实现伺服电机控制
  6. 数据结构---后序和中序遍历的二叉树序列还原二叉树
  7. C++常见面试题(2019年校招总结)
  8. PDS+VL Motion对发动机曲轴系统不平衡载荷进行仿真分析
  9. ICCV2021 新增数据集汇总 | 含时序动作定位、时空行为检测、弱光目标检测等!...
  10. 企业架构规划及服务器优化参数
  11. POJ-1191 棋盘分割 记忆化搜索
  12. Android卡顿掉帧问题分析之实战篇
  13. 163等各种邮箱端口号设置
  14. H3C RRPP实验
  15. Superset系列9- 制作地图
  16. diy 扫地机器人 滚刷_【参考文档】扫地机器人滚刷与边刷的作用-word范文 (1页)...
  17. git添加diff tool和merge tool
  18. 因此,吉尔伯特教授建议
  19. DaVinci:跟踪器 - 窗口
  20. 虚拟内存如何设置最好?

热门文章

  1. 【跃迁之路】【507天】程序员高效学习方法论探索系列(实验阶段264-2018.06.27)...
  2. Java 代码块:静态代码块、构造代码块、构造函数块
  3. 高质量外链该怎样做?
  4. 解决 Symantec SEP 12.1 经常扫描的问题
  5. Hello can not find git path
  6. perf-应用程序的调优与使用
  7. 批量增加字段值 mysql_按照一定规则批量修改表中新增字段的值
  8. Android 学习JNI,用JAVA调用C
  9. 由spin_lock_bh想到的一些事
  10. tcpdump高级过滤