ElacticSearch做分页查询页数超一万之后异常处理

今天在使用ElacticSearch做分页查询的时候,遇到一个奇怪的问题,分页获取前9999条数据的时候都是正常的,但每次获取第10000条数据的时候就无法获取到结果。检查自己代码中的分页逻辑也未发现什么问题,于是进行单步调试,当单步获取第10000条数据的时候捕捉到了下面的异常:

 Result window is too large, from + size must be less than or equal to: [10000] but was [131233]

要解决这个问题,可以使用下面的方式来改变ES默认深度分页的index.max_result_window 最大窗口值

curl -XPUT http://127.0.0.1:9200/my_index/_settings -d '{ "index" : { "max_result_window" : 500000}}'