【问题标题】:Open distro for elasticsearch弹性搜索的开放发行版
【发布时间】:2021-01-16 09:20:53
【问题描述】:

我们可以通过 java 从 open distro elasticsearch 中获取超过 10000 条记录吗?

我尝试了普通的基本 sql 查询:

select id, name from employee order by id desc limit 10, 10;

如果我尝试使用上述查询获取数据,它可以正常工作,但它的范围应该低于 10k。 如果我更改 limit (from, size) 即 limit 10000, 10 那么它不会返回任何值。

【问题讨论】:

  • 已经很久了,如果您能提供更新或提出您可能遇到的后续问题,那就太好了

标签: elasticsearch elasticsearch-opendistro


【解决方案1】:

是的,你可以,控制这个限制的index.max_result_window的默认值是10K,因此你没有得到结果,请阅读official ES docs中这个设置的描述

搜索到该索引的 from + size 的最大值。默认值 到 10000。搜索请求占用堆内存和时间成正比 from + size 这限制了内存。请参阅滚动或搜索之后 寻找一个更有效的替代方案来提高这一点。

当你给 from 和 size 为 10k,10 时,它超过了 from+size of 10k 的限制。但好消息是它是动态设置,无需重启 ES 节点即可更改:

PUT http://{{esHost}}:{{port}}/{{index}}/_settings

{
    "index.max_result_window" : 20000
}

检查是否在索引设置中更新

GET http://{{eshost}}:{{port}}/{{index}}/_settings

{
    "64142048": {
        "settings": {
            "index": {
                "number_of_shards": "1",
                "provided_name": "64142048",
                "max_result_window": "20000", --> note the change
                "creation_date": "1601531937379",
                "number_of_replicas": "1",
                "uuid": "TyEBaknxRJy9NGgma6jOmA",
                "version": {
                    "created": "7080099"
                }
            }
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-04
    • 2011-09-24
    • 2021-11-23
    • 2018-11-12
    • 2014-10-30
    • 2018-10-26
    • 1970-01-01
    相关资源
    最近更新 更多