ElasticSearch实战(二十九)-分页查询
Posted 张志翔ۤ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ElasticSearch实战(二十九)-分页查询相关的知识,希望对你有一定的参考价值。
我们在实际工作中,有很多分页的需求,商品分页、订单分页等,在mysql中我们可以使用limit
,那么在Elasticsearch中我们可以使用什么呢?
ES 分页搜索一般有三种方案,from + size、search after、scroll api,这三种方案分别有自己的优缺点,下面将进行分别介绍。
数据集我们使用kibana中的kibana_sample_data_flights
。
一、from + size
这是ES分页中最常用的一种方式,与MySQL类似,from指定起始位置,size指定返回的文档数。我们查询航班中目的地的天气是晴朗的数据,按时间进行排序,命令如下:
GET kibana_sample_data_flights/_search
{
"track_total_hits": true,
"from": 10,
"size": 2,
"query": {
"match": {
"DestWeather": "Sunny"
}
},
"sort": [
{
"timestamp": {
"order": "asc"
}
}
]
}
from + size 的优点是简单,缺点是在深度分页的场景下系统开销比较大,小心内存溢出哦。
注:track_total_hits:可以同时返回9999以上的数据,否则只能返回9999条数据。
二、search after
这个不太明白是干嘛用的,先不介绍。
三、scroll api
这个不太明白是干嘛用的,先不介绍。
到此分页查询介绍完成。
以上是关于ElasticSearch实战(二十九)-分页查询的主要内容,如果未能解决你的问题,请参考以下文章