首页 > 其他分享 >es 分页查询

es 分页查询

时间:2023-05-10 17:24:25浏览次数:38  
标签:pageNum 分页 pageSize 查询 searchResponse tPage new total es




public<T> Page pageQuery(String index, ProgrammeRequest request, QueryBuilder queryBuilder,Class<T> tClass) throws IOException { Integer pageNum = request.getPageNum(); Integer pageSize = request.getPageSize(); int from = (pageNum - 1) * pageSize; SearchRequest searchRequest = new SearchRequest(index); SearchSourceBuilder builder = new SearchSourceBuilder(); builder.query(queryBuilder) .from(from) .size(pageSize) .sort("id", SortOrder.ASC); searchRequest.source(builder); long total = 0; SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT); if (searchResponse.status().equals(RestStatus.OK)){ long totalHits = searchResponse.getHits().getTotalHits().value; if (totalHits >= 10000){ // 去es 查询记录总数 CountRequest countRequest = new CountRequest(index); countRequest.source(builder); CountResponse count = restHighLevelClient.count(countRequest, RequestOptions.DEFAULT); total = count.getCount(); }else { total = totalHits; } SearchHit[] hits = searchResponse.getHits().getHits(); List<T> records = Arrays.stream(hits).map(v -> JSONObject.parseObject(v.getSourceAsString(), tClass)).collect(Collectors.toList()); Page<T> tPage = new Page<>(); tPage.setRecords(records); tPage.setTotal(total); tPage.setSize(pageSize); tPage.setCurrent(pageNum); tPage.setPages(total / pageNum == 0 ? total / pageNum : total / pageNum + 1); return tPage; } return null; }

 做一下笔记

标签:pageNum,分页,pageSize,查询,searchResponse,tPage,new,total,es
From: https://www.cnblogs.com/prader6/p/17388556.html

相关文章

  • System.InvalidOperationException:“The entity type 'XXXXX' has multiple properti
    一、前言当我使用efcorecodefirst成功生成实体类,然后编写好功能,运行的时候报了这个错误System.InvalidOperationException:“Theentitytype'Student'hasmultiplepropertieswiththe[Key]attribute.Compositeprimarykeyscanonlybesetusing'HasKey'in'OnMo......
  • httprunner 4.x学习 - 12. 测试用例引用前面一个用例testcase
    前言当登录用例写完后,后面想继续写其他用例,可以导入前面的login用例,当成下个用例的步骤使用导入前一个用例之前,需先export导出变量,变成全局变量。登录用例在testcase下新建一个test_login.yml文件,用于测试登录成功接口信息testcase/test_login.ymlconfig:name:测试登......
  • bitsandbytes--Facebook 推出 8 比特优化器大大减少显存
    “小夕,小夕!又出来了个SOTA模型!赶紧follow!”小夕看了看新模型的参数量,然后看了看实验室服务器的几张小破卡。小夕,陷入了沉默。自从人们发现越大的模型性能越好后,神经网络模型的参数量就在越来越大的道路上一去不复返了。从XX-large到GPT3,再到5300亿参数的MegatronTur......
  • Web Services:Apache XML-RPC
    XML-RPC(http://ws.apache.org/xmlrpc/ )的全称是XML Remote Procedure Call,即XML远 程方法 调 用。是JAVA 实现 的XML-RPC。        这种远程过程调用使用http作为传输协议,XML作为传送信息的编码格式。Xml-Rpc的定义尽XML-RPC(http://ws.apache.org/xml......
  • ibatis查询返回java.util.HashMap结果列表
    DAO的实现类中的代码:Java代码returnMapgetItemNames(){ returngetSqlMapClientTemplate().queryForMap("getItemNameMap",null,"key","value");}SqlMap配置文件中的代码:Java代码<resultMapid=map-item-name"class=......
  • FreeSWITCH部署与功能配置
    一.FreeSWITCH服务部署1.wgethttp://www.freeswitch.org.cn/Makefile&&makeinstall2.cdfreeswitch3.运行./bootstrap.sh(作用:初始化环境)4.执行./configure(主要的作用是对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系,但并不是所有的tar包都是源代......
  • chipyard——DUT/testbench/host
    一,简介chipyard中有两类DUT,一类是无法自启动,必须由主机将测试程序加载到DUT的内存中,并向DUT发信号,表示程序已准备好运行。还有一类可以自启动的DUT,具有bootrom,可自行加载程序。chipyard主机(hostcomputer/outsideworld)与DUT的两种通信方式:使用TetheredSerialInterface(TSI......
  • FreeSWITCH安装教程
    最近学习freeswitch,网络上搜罗了大把的安装教程,基本都有坑。然而,对于解决坑的过程是坑坑有惊喜。在此记录一下安装及采坑的过程。如有问题,欢迎大家留言探讨~~~1、基础环境。操作系统:CentOSLinuxrelease7.9.2009位数:LinuxSSUAiServer3.10.0-1160.el7.x86_64#1SMPMo......
  • Cesium:数据处理遇到的一些问题
    CesiumLab地形切片出错原因是tif数据没有定义空间参考,首先找到“投影和变换——要素——定义投影”定义坐标系,选择与其他图层相同的坐标系。没有其他图层的坐标参考就根据个人需要定义坐标系统;可以参考文章......
  • 使用mybatisplus分页插件,设置了每页容量和页数但还是获取的全部数据(已解决)
    注意观察mybatisplus的查询语句,分页插件正确配置后,在查询时会使用limit限制查询的数量(如下图) 但是如果没配置好就是没有limit这个限制,只要加上配置文件或者确认自己的配置正确即可,配置参考如下博客springboot(二)整合mybatisplus+分页插件+代码生成springboot(二)整合mybat......