【问题标题】:Scroll api for a more efficient way to request large data sets滚动 api 以获得更有效的方式来请求大型数据集
【发布时间】:2017-06-27 19:21:48
【问题描述】:

我正在使用 Elastic Search 数据格式插件,我的要求是请求一个近 100 万条记录的大型数据集。但是每当我请求超过 10 000 时,我都会收到如下错误:

结果窗口太大,from+size必须小于等于: [10000] 但为 [100000]。查看滚动 api 以获得更有效的方法 请求大型数据集。这个限制可以通过改变 [index.max_result_window] 索引级别设置。”

我尝试将我的默认页面分配更改为:

http://1.2.3.4:9200/index/_settings -d '{ "index" : { "max_result_window" : 1000000}}'

但事情对我不起作用。有没有其他替代品?

我正在使用 Elastic Search 5.4 主数据格式插件

【问题讨论】:

标签: elasticsearch elasticsearch-plugin


【解决方案1】:

正如错误消息中所建议的,使用滚动 API 是检索大型数据集的有效方法。例如,

POST <host_name>:<port_num>/<index_name>/_search?scroll=1m&size=100000

如上图,大小为100000,scroll为1m,表示scroll api每次点击会检索100000条记录,此scroll可用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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-09
    • 2016-06-20
    • 2016-10-28
    • 1970-01-01
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    • 2014-08-04
    相关资源
    最近更新 更多