代码改变世界

从es中拉取全部数据/大量数据 使用scroll+scan避免深分页

2018-07-28 00:13  ZealouSnesS  阅读(7510)  评论(0编辑  收藏  举报

 

es一次请求默认返回的数据条数是10条,可以通过设置size参数来控制返回数据的条数:

如果要返回很多数据,可以把size设置的很大,不过elastic search默认size最大不能超过1万。

那么如果数据量很大,超过1万,而又想要把所有数据都拉出来怎么办呢?

有三种方法:聚合,修改es的size的默认最大值,scroll+span

这里只讲我认为最好的方法:scroll+span

简单的说就是分页取出

 

第一次请求:

 

 以后的请求(以后的请求默认带着第一次请求的参数):

 

 

参考:

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

https://blog.csdn.net/wild46cat/article/details/64123353

https://blog.csdn.net/fanxing1964/article/details/79366399