我们可以使用from +size来获取所有数据,但是,如果数据量大的时候,这样的操作开销很大,这时候可以使用scroll操作

1.第一步发起一个scroll 的post请求,带上参数scroll=1m (1m的意思是1分钟的意思)

POST /twitter/_search?scroll=1m
{
"size": 100,
"query": {
"match" : {
"title" : "elasticsearch"
}
}
} 这一步会得到一个_scroll_id

2. 使用第一步得到的_scroll_id 来翻页,一直执行这个请求,就可以得到所有的数据了
POST /_search/scroll
{
"scroll" : "1m",
"scroll_id" : "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAA3okgWbkYzT1lBcjRUS0NmbkRnclY3bElmUQ=="
} 注意:
1. 如果想加快索引,第一步加上sort选项, 有些文章会说使用 search_type=scan ,但这个选项是要es 2.1版本之前才有用,之后的版本就被弃用了,改成sort选项了
GET /_search?scroll=1m
{
"sort": [
"_doc"
]
}
2.scroll参数说明,这个表示_scroll_id的有效期有多久,如果超过这个有效期,那再去翻页就会得到404 error,并且每次翻页都会重置有效期,所以这个有效期只需要大于前后两次翻页的时间(也就是你处理一页数据的时间)

3. scrapy去请求翻页,很有可能因为_scroll_id没有变化,造成请求重复而被放弃,一定要加上dont_filter=True

4.我在做这个测试的时候,发现window测试电脑用外网地址去请求centos服务器的ES数据很慢,而用内网中的linux计算机去请求同样的服务器数据,时间快了20倍

参考

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-body.html#request-body-search-scroll

https://www.elastic.co/guide/en/elasticsearch/reference/5.4/breaking_50_search_changes.html

es 6.x scroll用法的更多相关文章

  1. ElasticSearch 学习记录之ES短语匹配基本用法

    短语匹配 短语匹配故名思意就是对分词后的短语就是匹配,而不是仅仅对单独的单词进行匹配 下面就是根据下面的脚本例子来看整个短语匹配的有哪些作用和优点 GET /my_index/my_type/_sea ...

  2. ES模块的基本用法常见使用问题

    本文作者:高峰,360奇舞团前端工程师,W3C WoT工作组成员. ES6中引入了模块(Modules)的概念,相信大家都已经挺熟悉的了,在日常的工作中应该也都有使用. 本文会简单介绍一下ES模块的优 ...

  3. jQuery之scroll用法实例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. ElasticSearch - 解决ES的深分页问题 (游标 scroll)

    https://www.jianshu.com/p/f4d322415d29 1.简介 ES为了避免深分页,不允许使用分页(from&size)查询10000条以后的数据,因此如果要查询第10 ...

  5. ES 入门之一 安装ElasticSearcha

    安装ElasticSearcha 学习ES也有快一个月了,但是学习的时候一直没有总结.以前没有总结是因为感觉不会的很多,现在对ES有一点了解了.索性就从头从安装到使用ES做一个详细的总结,也分享给其他 ...

  6. ElasticSearch 学习记录之ES几种常见的聚合操作

    ES几种常见的聚合操作 普通聚合 POST /product/_search { "size": 0, "aggs": { "agg_city&quo ...

  7. ElasticSearch 学习记录之 分布式文档存储往ES中存数据和取数据的原理

    分布式文档存储 ES分布式特性 屏蔽了分布式系统的复杂性 集群内的原理 垂直扩容和水平扩容 真正的扩容能力是来自于水平扩容–为集群添加更多的节点,并且将负载压力和稳定性分散到这些节点中 ES集群特点 ...

  8. ElasticSearch 学习记录之ES高亮搜索

    高亮搜索 ES 通过在查询的时候可以在查询之后的字段数据加上html 标签字段,使文档在在web 界面上显示的时候是由颜色或者字体格式的 GET /product/_search { "si ...

  9. ElasticSearch 学习记录之ES查询添加排序字段和使用missing或existing字段查询

    ES添加排序 在默认的情况下,ES 是根据文档的得分score来进行文档额排序的.但是自己可以根据自己的针对一些字段进行排序.就像下面的查询脚本一样.下面的这个查询是根据productid这个值进行排 ...

随机推荐

  1. Spark学习之路 (四)Spark的广播变量和累加器[转]

    概述 在spark程序中,当一个传递给Spark操作(例如map和reduce)的函数在远程节点上面运行时,Spark操作实际上操作的是这个函数所用变量的一个独立副本.这些变量会被复制到每台机器上,并 ...

  2. matplotlib调整子图大小

    因为子图太多而导致每个子图很小,很密,如何调整

  3. P1282 多米诺骨牌【dp】

    P1282 多米诺骨牌 提交 20.02k 通过 6.30k 时间限制 1.00s 内存限制 125.00MB 题目提供者洛谷 难度提高+/省选- 历史分数100 提交记录 查看题解 标签   查看算 ...

  4. java课后动手动脑作业

    public class Suiji { public long a=12345L;//定义long类型的a,b,c变量 public long c=12345L; public long m=456 ...

  5. 区间dp(模板+例题)

    参考博文:区间dp小结(附经典例题) 首先,什么是区间dp?它是干什么的? 先在小区间进行DP得到最优解,然后再利用小区间的最优解合并求大区间的最优解 操作往往涉及到区间合并问题 以上. 模板如下: ...

  6. C# LINQ学习笔记三:LINQ to OBJECT之操作字符串

    本笔记摘抄自:https://www.cnblogs.com/liqingwen/p/5814204.html,记录一下学习过程以备后续查用. 一.统计单词在字符串中出现的次数 请注意,若要执行计数, ...

  7. vue常用插件之视频播放(rtmp m3u8)

    vue-video-player(5.0.2) 最近我的项目做了一个监控视屏的显示,后台提供的视屏格式是rtmp 后来又改为m3u8,没成功,原因是占用内存过大,所以取消了这种方式 一.安装 npm ...

  8. ElasticSearch安装---Windows环境

    一.前提条件 已经安装了jdk 1.8 二.下载 中文官网: https://www.elastic.co/cn/ 中文官网下载: https://elasticsearch.cn/download/ ...

  9. 莫凡_linux

    1.安装软件 2.基本命令ls和cd cd 指令 第一个要知道的指令就是怎么样去到你想去的地方. cd (Change Directory) 就是干这个的. 找到 Linux 的 terminal 窗 ...

  10. ubuntu set up 3 - cuda

    https://www.pugetsystems.com/labs/hpc/How-to-install-CUDA-9-2-on-Ubuntu-18-04-1184/ How to install C ...