使用Elasticsearch做分页查询时,当查询记录超过10000时,会报如下错误:

Result window is too large, from + size must be less than or equal to: [10000] but was [10025].
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 parameter.

查阅文档可知,默认只能查询到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
  }
}
curl -XPUT "http://localhost:9200/wm-pay-order/_settings" -d '{"index":{"max_result_window":1000000}}' -H "Content-Type: application/json"

修改成功后返回:

{
  "acknowledged": true
}

然后再去查询就可以了。

上一篇 下一篇