我们能通过java从开放发行版elasticsearch中获取超过10000条记录吗?
我尝试使用普通的基本sql查询:
从员工中选择id,姓名按id排序描述限制10,10;
如果我尝试使用上面的查询来获取数据,它工作得很好,但是它的范围应该在10k以下。如果我改变限制(从,大小)即限制10000,10,那么它不会返回任何值。
发布于 2020-10-01 13:56:58
可以,控制此限制的index.max_result_window的默认值是10K,因此您得不到结果,请阅读official ES docs中此设置的说明
此索引搜索的最大值from + size。默认为10000。搜索请求占用堆内存和与from + size成正比的时间,这限制了内存。请参见Scroll或Search After,以获得更有效的替代方法。
当你从10k,10给出值和大小时,它超过了10k的from+size限制。但好消息是,它是一个动态设置,可以在不重新启动ES节点的情况下进行更改:
PUT http://{{esHost}}:{{port}}/{{index}}/_settings
{
"index.max_result_window" : 20000
}检查是否在索引设置中进行了更新
获取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"
}
}
}
}
}https://stackoverflow.com/questions/64142048
复制相似问题