Sliced Scroll

在实现日常需求中,经常有 用到  Sliced Scroll 记录下

官网使用情况

 max是切片数,是切片编号。最大值可以等于分片的数量,较低或更高。拆分首先在分片上完成,然后在每个分片上本地进行。这意味着,如果每个切片将是单个分片上的滚动。idmax == num_of_shards。      请注意,当切片数大于分片数时,将执行内存成本操作。您可以使用切片滚动进行并行重新索引、按查询更新和按查询删除在此处阅读更多内容。

 

查询 2020-04-24 00:00:00 到 2020-04-26 12:59:59 所有条数,记录已经超过1万条,使用 Sliced Scroll,

 

注意: “max”: 5 ,max 可以去掉,去掉的话 就是可以查询全量

GET xxxxindex/_search?scroll=1m
{
  "query": {
    "bool": {
      "must": [
        {
          "range": {
            "curTime": {
              "gt": "2020-04-24 00:00:00",
              "lt": "2020-04-26 12:59:59"
            }
          }
        }
      ]
    }
  },
  "from": 0,
  "size": 1,
  "slice": {
    "id": 0,
    "max": 5
  }
}

 

这样写,它会返回 符合条件的总条数

从视图中,可以看到 返回 “_scroll_id”

刚设置的 scroll=1m,分片在一分钟内有效

把返回 _scroll_id 内容复制到新的语句

 

 

 

GET /_search/scroll
{
"scroll":"1m",
"scroll_id":"DnF1ZXJ5VGhlbkZldGNoBQAAAAAAHU1dFmVLWUlBc0RHU0NpbVNDX2dlOTRwdmcAAAAAAB5srBZHNUp2UzR3QVFfbVVRazZYdjN6cm13AAAAAAAeGzcWUlJNWFBmNGNUWnVGMVpjZnc2VVhrQQAAAAAAGiY-FjE4eG1peV9QUm8tajF3aGFxQzlrdWcAAAAAABylIBZ6M1o0U0FZS1RlT3NhOUROX1dkQmZB"
}

在1分钟以内,查询有效,返回下一批数据,超过1分钟,查询就会报错,报错图如下:

 

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注