前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ES日志报错赏析-Result window is too large

ES日志报错赏析-Result window is too large

原创
作者头像
shanizeng
发布2022-07-11 17:37:55
1.5K0
发布2022-07-11 17:37:55
举报

报错现象

日志中可查看到相关报错信息,含义:深度分页必须小于等于10000,而现在达到了20000。

代码语言:javascript
复制
Result window is too large, from + size must be less than or equal to: [10000]
but was (20000]

报错分析

为了避免用户使用过大的分页请求导致集群 OOM,ES 具有默认的深分页限制,最大为10000。

特别说明:如果使用了腾讯云默认的索引模板创建索引,"max_result_window" 的限制为65536

解决方案

短期方案

调整集群的默认分页限制参数

调整单个索引,indexname 为索引名称

代码语言:javascript
复制
curl -XPUT http://x.x.x.x:9200/indexname/_settings -d '{"index": {"max_result_window": 65535}}'

调整集群所有索引

代码语言:javascript
复制
curl -XPUT http://x.x.x.x:9200/_all/_settings -d '{"index": {"max_result_window": 65535}}'

长期方案

临时调整参数的方式可解决无法查询超过10000条的问题,但会给集群带来较大的负担,影响性能,建议通过 scroll 来优化此类查询。

使用方式

代码语言:javascript
复制
curl -XGET http://x.x.x.x:9200/indexname/_search?scroll=1m   //保持游标查询窗口的时间
{
    "query": { "match_all": {}},
    "sort" : ["_doc"],   //关键字 _doc 是最有效的排序顺序。
    "size":  1000
}    

保持游标查询窗口的时间是指针对当前批处理的时间,而不是处理所有结果的时间。单个窗口的保持对于集群是有资源消耗的,因此这个时间不宜过长。更多设置方式,可参考 ES 原厂文档:https://www.elastic.co/guide/en/elasticsearch/reference/8.3/scroll-api.html

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 报错现象
  • 报错分析
  • 解决方案
    • 短期方案
      • 长期方案
        • 使用方式
    相关产品与服务
    Elasticsearch Service
    腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档