ES设置最大查询条数限制,打破限制,聚合分组数量限制打破

本文介绍了如何在ElasticSearch中设置和突破最大查询条数(max_result_window)和聚合分组数量(search.max_buckets)的限制,包括在Kibana和通过API进行设置的方法。
摘要由CSDN通过智能技术生成

ES设置最大查询条数限制,打破限制,聚合分组数量限制打破

一、前言

​ 今天在做ElasticSearch进行查询的时候发现,在进行分页的时候,数据超出10000以后得页数,查询的时候会报错。后查询了es官方文档发现,查询数量的默认值是10000

官网链接:https://www.elastic.co/guide/en/elasticsearch/reference/7.8/index-modules.html#dynamic-index-settings

index.max_result_window
The maximum value of from + size for searches to this index. Defaults to 10000.
Search requests take heap memory and time proportional to from + size and this limits that memory. 
See Scroll or Search After for a more efficient alternative to raising this.

报错内容:

max_result_window is too large

二、如何修改最大值限制

  1. Kibana中进行修改,将index_name替换成自己的索引名
// 请求
PUT index_name/_settings
{
    "index" : {
        "max_result_window" : 200000
    }
}
// 响应
{ "acknowledged": true }
  1. 通过API修改
curl -H "Content-Type: application/json" -XPUT 127.0.0.1:9200/index_name/_settings -d '{"index.max_result_window":"200000"}'

三、查看修改后的配置

// 请求
GET index_name/_settings
// 响应
{
  "index_name" : {
    "settings" : {
      "index" : {
      	......
        "max_result_window" : "200000", // 修改后的最大限制数量
        ......
      }
    }
  }
}

四、附言,聚合分组最大数量限制如何修改

  1. 由于es最大限制数量为10000,所以在进行聚合分组(Aggregations )的时候,也会有限制影响,但是需要单独修改
// 请求
PUT /_cluster/settings
{
  "persistent": {
    "search.max_buckets": 300000
  }
}
// 响应
{
  "acknowledged" : true,
  "persistent" : {
    "search" : {
      "max_buckets" : "300000"
    }
  },
  "transient" : { }
}
  1. 修改配置之后,在进行聚合分组设置size值的时候,就可以突破上限了。
  2. 注意:但是只能在当前设置的范围内

后续会持续更新在工作当中遇到的问题!!!

大家一起学习!!!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

桂秋拾貳.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值