标签:index 10000 max 查询 window Elasticsearch result
问题描述
分页查询场景,当查询记录数超过 10000 条时,会报错。
使用 Kibana 的 Dev Tools 工具查询 从第 10001 条到 10010 条数据。
查询语句如下:
GET alarm/_search { "from": 10000, "size": 10 }
查询结果,截图如下:
报错信息如下:
{ "error": { "root_cause": [ { "type": "query_phase_execution_exception", "reason": "Result window is too large, from + size must be less than or equal to: [10000] but was [10010]. See the scroll api for a more efficient way to request large data sets. This limit can be set by changing the [index.max_result_window] index level setting." } ], "type": "search_phase_execution_exception", "reason": "all shards failed", "phase": "query", "grouped": true, "failed_shards": [ { "shard": 0, "index": "alarm", "node": "hdLJanxRTbmF52eK6-FFgg", "reason": { "type": "query_phase_execution_exception", "reason": "Result window is too large, from + size must be less than or equal to: [10000] but was [10010]. See the scroll api for a more efficient way to request large data sets. This limit can be set by changing the [index.max_result_window] index level setting." } } ] }, "status": 500 }
原因分析
Elasticsearch 默认查询结果最多展示前 10000 条数据。
解决方案
按照报错信息里的提示,可以看到,通过设置 max_result_window 的值来调整显示数据的大小:
This limit can be set by changing the [index.max_result_window] index level setting.
两种方式可以实现:
【方式一】(修改完配置文件,需要重启集群中的 ES 服务)
修改Elasticsearch 集群中的 配置文件 config/elasticsearch.yml
在配置文件最后增加一行,如下:
max_result_window: 200000000
【方式二】(推荐)
具体操作命令,如下(比如,设置可查询 200000000 条数据,其中 alarm 是index名称):
PUT alarm/_settings { "max_result_window" : 200000000 }
命令执行效果,截图如下:
再次执行查询语句,即可正常查询,效果截图如下:
文章来源:https://www.cnblogs.com/miracle-luna/p/11153088.html
标签:index,10000,max,查询,window,Elasticsearch,result 来源: https://www.cnblogs.com/xzlive/p/15094920.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。