如果涉及大量数据查询的话,一次性取回所有数据显得非常不可靠,一方面 ES 可能会被长时间占用,另一方面在网络连接方面也要一直保持连接状态。
以查询电商商品为例,如果当用户查看商品时候,将所有数据都返回,这将会使得用户等待时间比较长,那么这么体验是非常糟糕的。在处理传统这方面的需求可以通过自定义逻辑实现分页查询,到数据库中分批取数据。ES 同样也支持分页查询。
分页查询
给定需求:
使用分页查询方法查询电子商务订单的订单 ID 与下单日期。
_source 字段里面包括整个文档的所有字段,但是有时候并不是所有的字段都需要,因此使用 includes 过滤。
from 定义了偏移量为多少,size 表示要返回多少数据。下面的查询语句表示从 0 开始查,返回 10 条数据。
GET /kibana_sample_data_ecommerce/_search
{
"_source": {
"includes": [
"order_id",
"order_date"
]
},
"from": 0,
"size": 10
}
查询结果:
{
&#