继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

ES报错Result window is too large问题处理

holdtom
关注TA
已关注
手记 1703
粉丝 240
获赞 991

我在使用Elasticsearch进行search查询的过程中,出现了Result window is too large问题。

这里简单做一个报错复现:

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了修改方法,命令如下:

curl -XPUT http://127.0.0.1:9200/cmdb-now/_settings -d '{ "index" : { "max_result_window" : 100000000}}'

需要注意的是,cmdb-now这里是我ES索引的名字,因此你需要它替换成你对应的索引名称进行修改。

有关官方针对index的相关配置介绍,可以点击这里进行查看。

©著作权归作者所有:来自51CTO博客作者aaao的原创作品,如需转载,请注明出处,否则将追究法律责任


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP