记一次ES查询结果集失败

2021-09-10  本文已影响0人  gigglesoso

使用es存储查询时有分页功能,数据量较少时并没有发现该问题。但是当数据量比较大时,要查询第101页的数据,每页数据量为100,100页数据相当于要查第10000条以后的数据,这时发现es查询报错:

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.

从字面理解,es的默认的结果集窗口是10000,但是你要查询到10025条数据;这里可以采用es的scroll api查询;或者通过改变索引的max_result_window的属性值。
上述的scroll api返回结果集为非排序的,不满足业务需求,所以不采用。
采用修改索引的max_result_window属性值。
修改方法如下:

PUT your_index/_settings
{
  "index":{
    "max_result_window":1000000
  }
}

返回结果:

{
  "acknowledged": true
}

然后再进行查询,发现可以正常返回了。

上一篇下一篇

猜你喜欢

热点阅读