我在使用Elasticsearch进行search查询的过程中,出现了Result window is too large
问题。
这里简单做一个报错复现:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
In [
1
]:
import
requests
In [
2
]: requests.get(
'http://127.0.0.1:9200/cmdb-now/_search?page=1&size=10000000'
).json()
Out[
2
]:
{
u
'error'
: {
u
'failed_shards'
: [
{
u
'index'
: u
'cmdb-now'
,
u
'node'
: u
'ldeZMZRAR6uZpAiIr5QxBQ'
,
u
'reason'
: {
u
'reason'
: u
'Result window is too large, from + size must be less than or equal to: [10000] but was [10000000]. 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.'
,
u
'type'
: u
'query_phase_execution_exception'
},
u
'shard'
:
0
}
],
u
'grouped'
:
True
,
u
'phase'
: u
'query'
,
u
'reason'
: u
'all shards failed'
,
u
'root_cause'
: [
{
u
'reason'
: u
'Result window is too large, from + size must be less than or equal to: [10000] but was [10000000]. 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.'
,
u
'type'
: u
'query_phase_execution_exception'
}
],
u
'type'
: u
'search_phase_execution_exception'
},
u
'status'
:
500
}
|
从上面的报错信息,可以看到ES提示我结果窗口太大了,目前最大值为10000,而我却要求给我10000000。并且在后面也提到了要求我修改index.max_result_window
参数来增大结果窗口大小。
我google了修改方法,命令如下:
1
|
curl -XPUT http:
//127
.0.0.1:9200
/cmdb-now/_settings
-d
'{ "index" : { "max_result_window" : 100000000}}'
|
需要注意的是,cmdb-now
这里是我ES索引的名字,因此你需要它替换成你对应的索引名称进行修改。
有关官方针对index的相关配置介绍,可以点击这里进行查看。
本文转自 aaao 51CTO博客,原文链接:http://blog.51cto.com/nolinux/1786656,如需转载请自行联系原作者