我在使用Elasticsearch進(jìn)行search查詢的過程中,出現(xiàn)了Result window is too large
問題。
這里簡單做一個報錯復(fù)現(xiàn):
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提示我結(jié)果窗口太大了,目前最大值為10000,而我卻要求給我10000000。并且在后面也提到了要求我修改index.max_result_window
參數(shù)來增大結(jié)果窗口大小。
我google了修改方法,命令如下:
curl -XPUT http://127.0.0.1:9200/cmdb-now/_settings -d '{ "index" : { "max_result_window" : 100000000}}'
需要注意的是,cmdb-now
這里是我ES索引的名字,因此你需要它替換成你對應(yīng)的索引名稱進(jìn)行修改。
有關(guān)官方針對index的相關(guān)配置介紹,可以點擊這里進(jìn)行查看。