In the process of using Elastic search for search queries, I encountered the problem of Result window is too big.
Here's a simple revenge:
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 }
From the above error message, you can see that the ES prompted me that the result window was too big, and the current maximum value was 10,000, while I asked for 10,000,000. Also mentioned later is the requirement that I modify the index.max_result_window parameter to increase the size of the result window.
I google modified the method, and the commands are as follows:
curl -XPUT http://127.0.0.1:9200/cmdb-now/_settings -d '{ "index" : { "max_result_window" : 100000000}}'
Note that cmdb-now is the name of my ES index, so you need to replace it with your corresponding index name for modification.
About the official configuration of index, you can click here Check it out.