elasticsearch的开放发行版

9ceoxa92  于 2021-06-10  发布在  ElasticSearch
关注(0)|答案(1)|浏览(342)

我们可以通过java从open distro elasticsearch获取超过10000条记录吗?
我尝试了普通的基本sql查询:
按id desc limit 10、10从员工订单中选择id、name;
如果我尝试用上面的查询获取数据,它可以正常工作,但是它的范围应该在10k以下。如果我更改limit(from,size)即limit 10000,10,那么它不会返回任何值。

wf82jlnq

wf82jlnq1#

可以,默认值为 index.max_result_window 控制此限制的是10k,因此您无法获得结果,请阅读官方es文档中的此设置说明
搜索到此索引的from+size的最大值。默认为10000。搜索请求占用的堆内存和时间与from+大小成比例,这限制了该内存。请参阅滚动或搜索后,以获得更有效的替代提高这一点。
当你把from和size设为10k,10时,它就越过了from+size的限制。但好消息是,它是一个动态设置,可以在不重新启动es节点的情况下进行更改:
放置http://{{eshost}}:{{port}}/{{index}}/\u设置

{
    "index.max_result_window" : 20000
}

检查是否在索引设置中进行了更新
获取http://{eshost}}:{{port}}/{{index}}/\u设置

{
    "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"
                }
            }
        }
    }
}

相关问题