我正在使用弹性搜索数据格式插件,我的要求是请求大量数据集近100万条记录。但每当我要求超过10 000时,我得到的错误如下:
结果窗口太大,+大小必须小于或等于: [10000]但是[100000]。请参阅scroll api以获得更有效的方法 请求大型数据集。可以通过更改来设置此限制 [index.max_result_window]索引级别设置。“
我尝试将默认页面分配更改为:
http://1.2.3.4:9200/index/_settings -d '{ "index" : { "max_result_window" : 1000000}}'
但事情对我不起作用。还有其他替代品吗?
我正在使用Elastic Search 5.4 数据格式插件为主
答案 0 :(得分:0)
正如错误消息中所建议的,使用scroll 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和滚动时间就足够了。
有关详细信息,请参阅scroll api:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-scroll.html
上的弹性搜索文档