es滚动查询分析和使用步骤示例详解

 更新时间:2023年09月16日 15:29:44   作者:克利斯提亚诺-梅西  
ES在进行普通的查询时,默认只会查询出来10条数据,我们通过设置es中的size可以将最终的查询结果从10增加到10000,这篇文章主要介绍了es滚动查询分析和使用步骤,需要的朋友可以参考下

ES在进行普通的查询时,默认只会查询出来10条数据。我们通过设置es中的size可以将最终的查询结果从10增加到10000。如果需要查询数据量大于es的翻页限制或者需要将es的数据进行导出又当如何?Elasticsearch提供了一种称为"滚动查询"(Scrolling)的机制,用于处理大型数据集的分页查询。滚动查询允许在持续的时间段内保持一个活动的搜索上下文,然后使用滚动ID进行迭代检索结果。滚动查询和关系型数据库中的游标有点类似,因此也叫游标查询。

滚动查询的一般步骤

1、发起初始搜索请求,返回命中结果和滚动ID

scroll=5m表示每个滚动查询的有效时间为5分钟

下面例子:

POST /your_index/_search?scroll=5m
{
  "size": 100,       // 每次返回的结果数量
  "query": { ... }   // 查询条件
}

命中结果:

{
  "_scroll_id": "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ==",
  "hits": {
    "total": {
      "value": 10000,
      "relation": "eq"
    },
    "hits": [ ... ]  // 检索到的文档
  }
}

示例:

在这里插入图片描述

2、使用滚动查询下一页的结果:

例子:

POST /_search/scroll
{
  "scroll": "5m",
  "scroll_id": "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ=="
}

命中结果:

在这里插入图片描述

3、重复执行直到没有检索结果返回

Elasticsearch将返回下一页结果。可以根据需要重复这个步骤,直到没有更多结果为止,即无数据返回为止。

4、清除滚动上下文释放资源

滚动查询结束后,可以通过发送一个清除滚动上下文的请求来释放资源:

DELETE /_search/scroll
{
  "scroll_id": [
    "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ=="
  ]
}

到此这篇关于es滚动查询分析和使用步骤的文章就介绍到这了,更多相关es滚动查询内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解如何将本地项目上传到Github的方法步骤(图文)

    详解如何将本地项目上传到Github的方法步骤(图文)

    这篇文章主要介绍了详解如何将本地项目上传到Github的方法步骤(图文),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • 详解idea切换git账号的两个方法

    详解idea切换git账号的两个方法

    这篇文章主要介绍了详解idea切换git账号的两个方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 为Jenkins添加SSH全局凭证

    为Jenkins添加SSH全局凭证

    这篇文章介绍了为Jenkins添加SSH全局凭证的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • idea中实用的git操作问题小结(撤回commit,撤回push、暂存区使用)

    idea中实用的git操作问题小结(撤回commit,撤回push、暂存区使用)

    我们在开发过程中经常遇到commit代码后,发现还有需要修改的地方又不想多次commit,此时如果不想敲git命令,可以利用idea实现commit撤回,下面给大家分享idea中实用的git操作问题小结,感兴趣的朋友跟随小编一起看看吧
    2024-08-08
  • HTTP长连接与短连接使用方法及测试详解

    HTTP长连接与短连接使用方法及测试详解

    这篇文章主要介绍了HTTP长连接与短连接使用方法及测试,需要的朋友可以参考下
    2020-02-02
  • 高性能WEB开发 为什么要减少请求数,如何减少请求数!

    高性能WEB开发 为什么要减少请求数,如何减少请求数!

    我们先分析下请求头,看看每次请求都带了那些额外的数据.下面是监控的google的请求头
    2010-05-05
  • HTML5 拖拽复制功能的实现

    HTML5 拖拽复制功能的实现

    这篇文章主要介绍了HTML5 拖拽复制功能的实现的相关资料,需要的朋友可以参考下
    2016-09-09
  • 微信小程序学习之初探小程序

    微信小程序学习之初探小程序

    这两天“微信小程序”这个词占据了朋友圈,大有一番风起云涌之势,当然,还不可能夸张到使原生App开发人员失业这种程度。当然,作为一名技术人员,时刻保持对新技术的好奇心是必须的,所以在网上找大神的教程,搭建了一下开发环境,来学习一下这个新的开发框架。
    2016-09-09
  • VSCode 云同步扩展设置Settings Sync插件

    VSCode 云同步扩展设置Settings Sync插件

    这篇文章主要介绍了VSCode 云同步扩展设置Settings Sync插件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • 如何通过阿里云实现动态域名解析DDNS的方法

    如何通过阿里云实现动态域名解析DDNS的方法

    这篇文章主要介绍了如何通过阿里云实现动态域名解析DDNS的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07

最新评论