记一次ES查询结果集失败

使用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
}

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容