elasticsearch 深分页查询:scroll
ES对from+size是有限制的,from+size 不能超过10000。
原理:
from+size在ES中的查询方式:
将指定关键字分词
将词汇去分词库中检索,得到多个文档id
取各分片中拉去指定数据(耗时较长)
根据scroe排序(耗时较长)
根据from舍弃一部分数据
返回查询结果
scroll在ES中的查询方式:
将指定关键字分词
将词汇去分词库中检索,得到多个文档id
将文档id存放在上下文中
根据指定size去上下文中检索指定个数的数据,拿完数据的文档id,会从上下文中移除
如果需要下一页数据,直接去ES上下文中,查询后续内容
循环4,5
#测试--scroll查询:执行scroll查询,返回第一页数据,并且将文档id信息存放在ES上下文中,指定生存时间1m
POST /king_test_person/_search?scroll=1m
{
"query": {
"match_all": {}
},
"size": 2,
"sort": [
{
"age": {
"order": "desc"
}
}
]
}
#测试--scroll查询:根据scroll查询下一页数据 POST /_search/scroll { "scroll_id":"FGluY2x1ZGVfY29udGV4dF91dWlkDnF1ZXJ5VGhlbkZldGNoAxZOSFpoaExrN1JVS3RVU1dLbWpuWUlnAAAAAAACTZcWeFdCZGlPRnFTejJXeWJ1ZmlKWEF4QRY4cXpzMU5HbFJZTzdUNm84NXVMdTV3AAAAAAADghwWMHVKNERoTGpRdmF5dm1ZeTZzUk8tURY1QXo5cEhuelRJMk5TMzlJMVdlaG5BAAAAAAAC4_sWUWc4X3M1ZFdUbC01Y0NGODNhbHZwQQ==", "scroll":"1m" }
#测试--scroll查询:删除scroll在ES上下文中的数据 DELETE /_search/scroll/FGluY2x1ZGVfY29udGV4dF91dWlkDnF1ZXJ5VGhlbkZldGNoAxZOSFpoaExrN1JVS3RVU1dLbWpuWUlnAAAAAAACTUwWeFdCZGlPRnFTejJXeWJ1ZmlKWEF4QRY4cXpzMU5HbFJZTzdUNm84NXVMdTV3AAAAAAADgY0WMHVKNERoTGpRdmF5dm1ZeTZzUk8tURY1QXo5cEhuelRJMk5TMzlJMVdlaG5BAAAAAAAC44EWUWc4X3M1ZFdUbC01Y0NGODNhbHZwQQ==

浙公网安备 33010602011771号