我正在使用Elastic Search数据格式插件,我的要求是请求一个大型数据集,该记录集将近100万条记录。但是,每当我要求高于10 000时,我都会得到如下错误:
Result window is too large, from + size must be less than or equal to: [10000] but was [100000]. 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 setting."
我试图将默认页面分配更改为:
http://1.2.3.4:9200/index/_settings -d '{ "index" : { "max_result_window" : 1000000}}'
但是事情对我不起作用。还有其他选择吗?
我正在使用Elastic Search 5.4
数据格式插件为主
最佳答案
如错误消息中所建议,使用滚动api是检索大型数据集的有效方法。例如,
POST <host_name>:<port_num>/<index_name>/_search?scroll=1m&size=100000
如上所示,大小为100000,滚动为1m,这意味着滚动api将每次命中检索100000条记录,并且该滚动可用1分钟。而且,此api返回滚动id,应将其用于记录的进一步检索。请在下面找到示例:
POST <host_name>:<port_num>/_search?scroll=1m&scroll_id=<scroll_id>
注意:进一步的滚动API调用,无需提及索引名称。仅scroll_id和滚动时间就足够了。
有关更多信息,请参阅滚动api上的 flex 搜索文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-scroll.html
关于elasticsearch - 滚动api以更有效的方式请求大数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44788244/