游标查询 Scrolledit

scroll 查询 可以用来对 Elasticsearch 有效地执行大批量的文档查询,而又不用付出深度分页那种代价。

游标查询允许我们 先做查询初始化,然后再批量地拉取结果。

这有点儿像传统数据库中的 cursor 。

游标查询会取某个时间点的快照数据。 查询初始化之后索引上的任何变化会被它忽略。

它通过保存旧的数据文件来实现这个特性,结果就像保留初始化时的索引 视图 一样。

深度分页的代价根源是结果集全局排序,如果去掉全局排序的特性的话查询结果的成本就会很低。

游标查询用字段 _doc 来排序。 这个指令让 Elasticsearch 仅仅从还有结果的分片返回下一批结果。

启用游标查询可以通过在查询的时候设置参数 scroll 的值为我们期望的游标查询的过期时间。

游标查询的过期时间会在每次做查询的时候刷新,所以这个时间只需要足够处理当前批的结果就可以了,而不是处理查询结果的所有文档的所需时间。

这个过期时间的参数很重要,因为保持这个游标查询窗口需要消耗资源,所以我们期望如果不再需要维护这种资源就该早点儿释放掉。

设置这个超时能够让 Elasticsearch 在稍后空闲的时候自动释放这部分资源。

GET /old_index/_search?scroll=1m

{

"query": { "match_all": {}},

"sort" : ["_doc"],

"size": 1000

}

保持游标查询窗口一分钟。

关键字 _doc 是最有效的排序顺序。

这个查询的返回结果包括一个字段 _scroll_id, 它是一个base64编码的长字符串 。 现在我们能传递字段

_scroll_id 到 _search/scroll 查询接口获取下一批结果:

GET /_search/scroll

{

"scroll": "1m",

"scroll_id" : "cXVlcnlUaGVuRmV0Y2g7NTsxMDk5NDpkUmpiR2FjOFNhNnlCM1ZDMWpWYnRROzEwOTk1OmRSamJHYWM4U2E2eUIzVkMxalZidFE7MTA5OTM6ZFJqYkdhYzhTYTZ5QjNWQzFqVmJ0UTsxMTE5MDpBVUtwN2lxc1FLZV8yRGVjWlI2QUVBOzEwOTk2OmRSamJHYWM4U2E2eUIzVkMxalZidFE7MDs="

}

注意再次设置游标查询过期时间为一分钟。

这个游标查询返回的下一批结果。

尽管我们指定字段 size 的值为1000,我们有可能取到超过这个值数量的文档。

当查询的时候, 字段 size 作用于单个分片,所以每个批次实际返回的文档数量最大为

size * number_of_primary_shards 。

注意游标查询每次返回一个新字段 _scroll_id。每次我们做下一次游标查询,

我们必须把前一次查询返回的字段 _scroll_id 传递进去。 当没有更多的结果返回的时候,我们就处理完所有匹配的文档了。

提示:某些官方的 Elasticsearch 客户端比如

Python 客户端 和

Perl 客户端 提供了这个功能易用的封装。

es scroll 时间_游标查询 Scroll | Elasticsearch: 权威指南 | Elastic相关推荐

  1. elasticsearch 条件去重_统计去重后的数量 | Elasticsearch: 权威指南 | Elastic

    速度优化edit 如果想要获得唯一值的数目, 通常 需要查询整个数据集合(或几乎所有数据). 所有基于所有数据的操作都必须迅速,原因是显然的. HyperLogLog 的速度已经很快了,它只是简单的对 ...

  2. php多关键词精确查找,查找多个精确值 | Elasticsearch: 权威指南 | Elastic

    查找多个精确值edit term 查询对于查找单个值非常有用,但通常我们可能想搜索多个值. 如果我们想要查找价格字段值为 $20 或 $30 的文档该如何处理呢? 不需要使用多个 term 查询,我们 ...

  3. elasticsearch: 权威指南_你还不会Elasticsearch的CUD?

    近端时间在搬砖过程中对es进行了操作,但是对es查询文档不熟悉,所以这两周都在研究es,简略看了<Elasticsearch权威指南>,摸摸鱼又是一天. es是一款基于Lucene的实时分 ...

  4. elasticsearch权威指南-中文

    elasticsearch权威指南-中文 Table of Contents 1. Introduction 2. 入门 i. 是什么 ii. 安装 iii. API iv. 文档 v. 索引 vi. ...

  5. Cg教程_可编程实时图形权威指南(扫描清晰版)+部分unity shader 知识

      Cg教程_可编程实时图形权威指南(扫描清晰版) .pdf (34.5 MB, 下载次数: 239) Shader Model(在 3D 图形领域常被简称SM)就是"优化渲染引擎模式&qu ...

  6. Elasticsearch权威指南

    在关于Elasticsearch的众多书籍.博客等材料当中,地位最高的自然是Elasticsearch权威指南,若想真正玩转ES,阅读指南是必经之路. 中文版信息 <Elasticsearch: ...

  7. es数据更新时间_京东到家订单中心系统mysql到es的转化之路

    原文:https://www.toutiao.com/i6796507988602389006 京东到家订单中心系统业务中,无论是外部商家的订单生产,或是内部上下游系统的依赖,订单查询的调用量都非常大 ...

  8. [Elasticsearch] Elasticsearch权威指南翻译目录

    为了方便大家能够更加快速地找到自己需要参考的那部分,对已经翻译完成的部分根据权威指南的目录做了相应目录,希望能够有所帮助. 起步(Getting Started) 1. 你懂的,为了搜索 英文原文链接 ...

  9. Introduction | Elasticsearch权威指南(中文版) | 好的博文地址|官方资源所在位置

    权威指南 https://es.xiaoleilu.com/170_Relevance/10_Scoring_theory.html 好的博文地址(以下博文可以作为学习参考资料) https://bl ...

最新文章

  1. 数据结构实验之查找六:顺序查找
  2. 信息学奥赛一本通 1176:谁考了第k名 | OpenJudge NOI 1.10 01:谁考了第k名
  3. 很多人搞不清楚的两个类Vector,ArrayList
  4. 利用cloudera manager搭建Hadoop集群
  5. 20211213软件测试基础达内视频笔记
  6. 商务办公软件应用与实践【5】
  7. python+selenium小米商城红米K40手机抢购!
  8. DMX512标准发送及代码整理
  9. JAVA_判断日期是否为工作日(排除节假日和调整周末上班)
  10. HttpClilent整合Spring使用【配置和代码】
  11. bioRxiv|利用机器智能设计抗新型冠状病毒药物
  12. 回调地狱[Callback Hell]
  13. 信息系统项目管理重点:信息化发展原则和方向
  14. ERC-3525 通过倒计时 SFT 是什么?有什么用?
  15. java中的消息提示框
  16. 这几个习惯,让我成为了高阶网络工程师。
  17. FPGA——PS/2驱动
  18. Linux:C获取当前网速 网线/4G
  19. ios 按钮文字下划线_iOS - UIButton设置文字标题下划线以及下划线颜色
  20. iframe简单使用

热门文章

  1. mysql 分析函数_MySQL分析函数实现
  2. python用户界面导入图片_python学习笔记之11:图像用户界面
  3. Promises/A+规范中文翻译
  4. 配置加密_数据库密码配置项都不加密?心也太大了!
  5. 进入Linux单用户模式
  6. 原型设计(结对第一次)
  7. spring AOP解析之xml方式详解
  8. jQuery从入门到忘记
  9. 【 D3.js 入门系列 --- 9 】 常见可视化图形
  10. eclipse 设置 默认编码为 utf-8