SpringBoot+Cloud 整合ES 运行报错 from + size must be less than or equal to: [10000] but was [17500000]
使用elasticsearch做分页查询时,当查询记录超过10000时,会报如下错误:
Caused by: org.elasticsearch.search.query.QueryPhaseExecutionException: Result window is too large, from + size must be less than or equal to: [10000] but was [17500000]. 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.
at org.elasticsearch.search.DefaultSearchContext.preProcess(DefaultSearchContext.java:203) ~[elasticsearch-5.6.13.jar:5.6.13]
at org.elasticsearch.search.query.QueryPhase.preProcess(QueryPhase.java:90) ~[elasticsearch-5.6.13.jar:5.6.13]
at org.elasticsearch.search.SearchService.createContext(SearchService.java:493) ~[elasticsearch-5.6.13.jar:5.6.13]
查阅文档可知,默认只能查询到10000:
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.
解决方法:
修改一下设置,把这个设置到自己想要的极限即可,我这里设置1000000:
PUT policy_document/_settings
{
"index":{
"max_result_window":1000000
}
}
修改成功后返回:
{
"acknowledged": true
}
本文作者:张三Blog
本文链接:https://www.cnblogs.com/zhangsan-plus/p/16503297.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步