最近项目需要做一些修改,把之前访问MySQL进行查询改为Es查询,Es查询的优点这边就不赘述了。

因为之前是借助PageHelper实现的分页,PageHepler需要结果集的总数,SQL实现的话直接SELECT COUNT(1) FROM TABLE WHERE CONDITION;即可,Es也可以通过sourceBuilder.from(0).size(10000)这样设置一个足够大的size,读取全部数据,然后通过hits.length得到结果集的总数,但效率太低,我们希望实现一次查询只查询当前页面的数据,即sourceBuilder.from(pageNumber).size(pageSize).

Es的RESTful API中可通过_count获取总数,下面为Java API中通过HighLevelClient执行CountRequest的实现方式:

public long searchEsCount(SearchVO vo){// 构建查询体QueryBuilder qb = buildQuery(vo);// 通过CountRequest查询获得countCountRequest countRequest = new CountRequest();// 绑定索引名countRequest.indices("question");countRequest.query(qb);try {CountResponse response = highLevelClient.count(countRequest, RequestOptions.DEFAULT);return response.getCount();} catch (IOException e) {e.printStackTrace();}return 0;}

CountResponse的结构为:

{count=169,// 总数_shards : {// 分片total=1, successful=1, skipped=0,     failed=0}
}

欢迎留言讨论(ง •_•)ง

Elasticsearch Java API之计数(HighLevelClient)相关推荐

  1. Elasticsearch Java API 6.2(java client)

    前言 本节描述了Elasticsearch提供的Java API,所有的Elasticsearch操作都使用客户端对象执行,所有操作本质上都是完全异步的(要么接收监听器,要么未来返回). 此外,客户端 ...

  2. ElasticSearch Java Api(四) -删除索引

    删除可以是删除整个索引库,也可以根据文档id删除索引库下的文档,还可以通过query查询条件删除所有符合条件的数据. 一.删除整个索引库 下面的例子会删除indexName索引: DeleteInde ...

  3. ElasticSearch Java Api(一) -创建索引

    ElasticSearch Java API官网文档:https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/jav ...

  4. Elasticsearch Java API四种实现方式

    0.题记 之前Elasticsearch的应用比较多,但大多集中在关系型.非关系型数据库与Elasticsearch之间的同步.以上内容完成了Elasticsearch所需要的基础数据量的供给.但想要 ...

  5. Elasticsearch RestHighLevelClient 已标记为被弃用 它的替代方案 Elasticsearch Java API Client 的基础教程及迁移方案

    在Elasticsearch7.15版本之后,Elasticsearch官方将它的高级客户端RestHighLevelClient标记为弃用状态.同时推出了全新的Java API客户端Elastics ...

  6. SpringBoot整合最新Elasticsearch Java API Client 7.16教程

    文章目录 前言 一.Elasticsearch和Kibana 7.16版本安装 二.pom.xml文件引入依赖 三.代码实例 总结 前言 最新在学习SpringBoot整合es的一些知识,浏览了网上的 ...

  7. Elasticsearch Java API 分组、聚合、嵌套相关查询

    Elasticsearch Java API 分组.聚合.嵌套相关查询 翼支付监控系统正使用es做后端存储,这边我们是将日志计算处理过后的数据通过kafka储存到es.选择用es作为数据储存端是考虑到 ...

  8. Elasticsearch8.0版本中Elasticsearch Java API Client客户端的基本使用方法

    关于Elasticsearch Java API Client客户端如何连接以及如何对索引和文档进行基本的增删改查操作请查看我的上一篇博文:Elasticsearch RestHighLevelCli ...

  9. Elasticsearch Java API 很全的整理以及架构剖析

    Elasticsearch 的API 分为 REST Client API(http请求形式)以及 transportClient API两种.相比来说transportClient API效率更高, ...

最新文章

  1. python3: 数字日期和时间(1)
  2. 统计学习方法第七章作业:SVM非线性支持向量机之SMO序列最小优化算法代码实现
  3. 如何修正导入模型的旋转? How do I fix the rotation of an imported model?
  4. The Distinguish of the share or static lib in MFC
  5. C#获取本机IP地址字符串
  6. python基础入门大作业怎么做_【百度飞桨】零基础Python课程大作业
  7. mega2560单片机开发_[MEGA DEAL] Ultimate Java开发和认证指南(59%折扣)
  8. python脚本打包成exe可执行文件
  9. 与数字化先锋共绘创新蓝图
  10. 杨强教授新番!破解机器学习数据孤岛和数据保护难题
  11. *(uint32_t *)(PERIPH) == GPIOX)
  12. CDN选择合适的回源策略很重要
  13. Deepfool阅读笔记
  14. oracle开启em服务
  15. 计算机问题的分步骤解决被称为,用计算机解决问题的过程.ppt
  16. OpenWRT-Wifidog之利用Luci认证
  17. 汇编语言实现简单的人机问答
  18. 数学建模算法 一 简述(3)规划模型-整数规划
  19. Python 自己简单地造一个轮子.whl文件
  20. Isaac-gym(6):环境创建、模型载入、actor设置等

热门文章

  1. html 调用weixinsharetimeline,微信小程序使用onShareTimeline分享到朋友圈的方法
  2. Tromino谜题java_Tromino谜题
  3. 暴力破解工具 hydra
  4. 什么是ANR,如何避免ANR
  5. Swift 语言概览
  6. 如何开通微信商城?微商城的开通方法?
  7. 将淘宝爬取的数据写入Excel表格
  8. 程序员基础的硬件知识(cpu、主板、显卡、内存条等)
  9. Transflow安装时弹出错误:You are using pip version 9.0.1, however version 19.1.1 is available. You should co
  10. 在Ubuntu-server下安装i3wm并简单配置