es中返回的结果只有1000条,这是默认的,想要返回更多的结果,需要做两步:
1、设置max_result_window的大小
PUT indexName/_settings
{
“max_result_window”:20000
}
max_result_window表示结果的最大数量
但是你这样设置完了之后,查询依旧还是1000条
2、查询的时候加上fetch_size 这表示页面上显示的数量
POST _sqlformat=txt
{
“query”:“”"
select *
from “indexName”
“”",
“time_zone” : “Asia/Shanghai”,
“fetch_size”:10000
}
通过设置了max_result_window为20000 ,所以这边fetch_size为10000 那么在es的返回结果里就有10000条数据
注意:max_result_window的大小要比fetch_size大 不然会报错:
“Batch size is too large, size must be less than or equal to: [20000] but was [50000]. Scroll batch sizes cost as much memory as result windows so they are controlled by the [index.max_result_window] index level setting.”
意思就是说:“批量大小太大,大小必须小于或等于:[20000]但为[50000]。”滚动批处理大小需要和结果窗口一样多的内存,所以它们由[index]控制。通过Max_result_window索引级别设置。"