ES报错Result window is too large问题处理
我在使用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 'Resultwindowistoolarge,from+sizemustbelessthanorequalto:[10000]butwas[10000000].Seethescrollapiforamoreefficientwaytorequestlargedatasets.Thislimitcanbesetbychangingthe[index.max_result_window]indexlevelparameter.' , u 'type' :u 'query_phase_execution_exception' }, u 'shard' : 0 } ], u 'grouped' : True , u 'phase' :u 'query' , u 'reason' :u 'allshardsfailed' , u 'root_cause' :[ { u 'reason' :u 'Resultwindowistoolarge,from+sizemustbelessthanorequalto:[10000]butwas[10000000].Seethescrollapiforamoreefficientwaytorequestlargedatasets.Thislimitcanbesetbychangingthe[index.max_result_window]indexlevelparameter.' , 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-XPUThttp: //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,如需转载请自行联系原作者