Elasticsearch查询报错 Result window is too large

一现象:

        es数据分页查询前端提示系统异常,后端报错日志

二根本原因:

默认情况下,Elasticsearch 限制了 from + size 参数的组合不能超过 10,000 条记录,用于防止查询大数据集时对系统资源的过度消耗

三解决办法:

        方法一:修改索引级别的 index.max_result_window 设置来增加允许返回结果窗口的大小

                        方法二:使用 Scroll API:Scroll API 是 Elasticsearch 提供的一种更高效地请求大数据集的方式。通过 Scroll API,您可以持续获取大量数据而无需一次性返回所有数据 

        方法三:使用search_after API

三种分页优缺点对比

分页方式优点缺点场景
from + size灵活性好,实现简单深度分页问题

数据量比较小,能容忍深度分页问题

scroll解决了深度分页问题无法反应数据的实时性(快照版本)维护成本高,需要维护一个 scroll_id,滚动上下文开销很大海量数据的导出需要查询海量结果集的数据
search_after不存在深度分页问题能够反映数据的实时变更实现复杂,需要有一个全局唯一的字段连续分页的实现会比较复杂,因为每一次查询都需要上次查询的结果海量数据的分页

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值