Elasticsearch分页不同方式汇总(案例举例)

这篇具有很好参考价值的文章主要介绍了Elasticsearch分页不同方式汇总(案例举例)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 工作中用到了,经过实践探索,总结下来备忘。解决问题第一,只有干货。

如有帮到你,欢迎点赞收藏哦!

目录

问题产生背景

方式


问题产生背景

从es拉取数据时,因为数据量过大,导致查询出来不是想要的所有数据。

查询语法中如果不指定size则返回10条记录;指定size后获取的最高数据量是65536,超过65536条就会报错:

Elasticsearch分页不同方式汇总(案例举例),组件/中间件常见问题解决,elasticsearch,jenkins,大数据

如果数据量远远大于65536呢?只查询65536条数据的话显然不是全额数据量,这里就需要采用分页了。

这里我们不考虑65535是怎么配置的,需不需要改配置,我们从使用方的角度来解决这件事。

方式

1,基于from + size ,该策略最大查询10000条数据,上限太低,可用场景太少,不能满足;

2,游标,实时滚动,前一次查询的结果会返回一个唯一的字符串,下次查询带上这个字符串进行下一页的查询;

3,scroll分页,快照,对实时性要求不高,但查询效率高。

首先我们可以看看响应包格式,查询的核心返回数据都是在hits这个数组中,该数组的长度就是本次请求数据量的实际长度:

Elasticsearch分页不同方式汇总(案例举例),组件/中间件常见问题解决,elasticsearch,jenkins,大数据

方式1

第一种方式很简单,请求时携带from和size。from即查询的起始位置,size即从起始位置开始的记录数,类似于offset、limit:

    "from": 0, 
    "size" : 2,

如果想一次查2条,那么请求第二页时,就成了

    "from": 2, 
    "size" : 4,

方式2

首次请求携带sort字段,指定返回按哪个字段排序

, 
  "sort": [
    {
      "timestamp": "desc"
    }

请求后,拿到本次请求返回包--hits数组的最后一个返回值,记住其中的sort中的内容,这里我只指定了一个字段所以返回的sort中只有一个值,如图:

Elasticsearch分页不同方式汇总(案例举例),组件/中间件常见问题解决,elasticsearch,jenkins,大数据

首次请求返回的数据量=65536时,把返回的sort值塞在第二次请求中,第二次及以后的请求中都需要带上search_after字段,如图:

Elasticsearch分页不同方式汇总(案例举例),组件/中间件常见问题解决,elasticsearch,jenkins,大数据

继续进行第二次请求看看还有多少数据,以此类推,直到某次请求<65536时这次访问结束,多次请求返回的数据量叠加在一起就是需要的实际数据量了。

方式3

基于scroll分页,和第二种用法类似,请求URL需要携带参数?scroll=5m,首次请求后记住返回的_scroll_id字段值塞进下次的请求中。5m是快照过期时间,即es把本次快照的结果缓存起来的有效时间,值自定。首次请求如下:

Elasticsearch分页不同方式汇总(案例举例),组件/中间件常见问题解决,elasticsearch,jenkins,大数据

往后的请求只需携带scroll、scroll_id这两个参数,查到的结果就是本页想要的结果,以此类推再记住这次请求返回的_scroll_id值...,第二次请求如下:

Elasticsearch分页不同方式汇总(案例举例),组件/中间件常见问题解决,elasticsearch,jenkins,大数据

要查的数据量大于65536时,如果哪次请求的hits长度已经<65536了,那么数据已经获取完成了,叠加所有请求返回的数据即可。注意URL哈,后面的请求和首次不一样哦!文章来源地址https://www.toymoban.com/news/detail-788475.html

到了这里,关于Elasticsearch分页不同方式汇总(案例举例)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • GPT引领学习之旅:适应不同级别程序员的Elasticsearch学习案例

    在本文中,我们将为初级、中级和高级程序员分别提供一个Elasticsearch学习案例,展示如何利用GPT进行针对性学习。 假设您是一名初级程序员,想要在自己的个人博客中集成Elasticsearch搜索引擎,以下是学习和实践的过程: 学习目标:了解Elasticsearch基本概念、安装配置、数据

    2023年04月24日
    浏览(53)
  • 4、Elasticsearch7.6.1 Java api操作ES(CRUD、两种分页方式、高亮显示)和Elasticsearch SQL详细示例

    1、介绍lucene的功能以及建立索引、搜索单词、搜索词语和搜索句子四个示例实现 2、Elasticsearch7.6.1基本介绍、2种部署方式及验证、head插件安装、分词器安装及验证 3、Elasticsearch7.6.1信息搜索示例(索引操作、数据操作-添加、删除、导入等、数据搜索及分页) 4、Elasticsearch7

    2024年02月16日
    浏览(76)
  • 【Python】flask框架请求体数据,文件上传,请求头信息获取方式案例汇总

    ✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN新星创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开

    2024年03月22日
    浏览(39)
  • React初体验-Hello React的组件化方式-React入门小案例

    接下来我们通过Hello React的案例, 来体验一下React开发模式, 以及jsx的语法 Hello React案例演练 第一步: 先引入React开发依赖 第二步: 这里我们编写React的script代码中,必须添加 type=\\\"text/babel\\\" ,作用是可以让babel解析jsx的语法 第三步: 创建元素渲染到页面 React18之前的做法: 通过 R

    2023年04月08日
    浏览(61)
  • 【人工智能】多元线性回归模型举例及python实现方式

    比如你做了一个企业想要招人,但是不知道月薪应该定在多少,你做了一个月薪和收入的调研,包括年限、学历、地区和月薪 做一个月薪=w1 年限+w2 学历+w3*城市+…+b的工作年限和薪资的多元线性模型,然后找出最适合线性模型的直线-成本函数、梯度下降方式,来预估你可以

    2024年02月19日
    浏览(52)
  • uniapp页面跳转的几种方式 以及举例(2)

    又来混时长 嫖流量卷了 保留当前页面,跳转到应用内的某个页面,使用 uni.navigateBack 可以返回到原页面。   关闭当前页面,跳转到应用内的某个页面。   关闭所有页面,打开到应用内的某个页面。 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。 关闭当前页面,返回上一

    2024年01月19日
    浏览(45)
  • 深入理解Java GSS(含kerberos认证及在hadoop、flink案例场景举例)

    在当今的信息安全环境下,保护敏感数据和网络资源的安全至关重要。 Kerberos 认证协议作为一种强大的网络身份验证解决方案,被广泛应用于许多大型分布式系统中,如: Hadoop 。而 Java GSS ( Generic Security Services )作为 Java 提供的通用安全服务,与 Kerberos 认证密切相关。 本

    2024年02月08日
    浏览(44)
  • 短视频创作,变现的建议、变现方式和举例,建议收藏反复阅读-上

    先说今天的纲要,有兴趣可以继续看下去,今天主要针对短视频变现这件事的讨论,有三个建议,①变现标准低、②变现天花板高、③可主动变现。 我们在选择变现形式的时候,尽可能满足这三个条件或其中两个。     中间我们再讨论下抖音短视频上哪种属于被动变现,哪

    2024年02月13日
    浏览(35)
  • 阿里云服务器如何购买?三种方式可买(图文教程举例)

    阿里云服务器可以通过快速购买、自定义购买和活动购买三种方式去购买。每种购买方式都有自己的适合场景,有很多需要注意的地方,下面是这些购买方式的具体图文教程及注意事项,适合初次购买阿里云服务器的用户参考。 **1.1、适合场景:**快速购买核(vCPU)数为1核、

    2024年02月05日
    浏览(32)
  • 分布式存储系统举例剖析(elasticsearch,kafka,redis-cluster)

    1. 概述 对于分布式系统,人们首先对现实中的分布式系统进行高层抽象,然后做出各种假设,发展了诸如CAP, FLP 等理论,提出了很多一致性模型,Paxos 是其中最璀璨的明珠。我们对分布式系统的时序,复制模式,一致性等基础理论特别关注。 在共识算法的基础上衍生了选举

    2024年02月12日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包