Elasticsearch 5.0 深分页
2018-03-09 21:34:48
1005 次阅读
0 个评论
Elasticsearch 5.0 新引入的一种分页查询机制search after。它的思想是利用上一页的分页结果来查询下一页的分页请求。
假设请求第一页的请求如下:
GET twitter/tweet/_search
{
"size": 10,
"query": {
"match" : {
"title" : "elasticsearch"
}
},
"sort": [
{"date": "asc"},
{"_id": "desc"}
]
}
注意,这里为了避免sort字段相同值的导致排序不确定,这里增加了 _id 字段。 返回的结果会包含每个文档的sort字段的sort value。这个就是所谓的游标
使用最后一个文档的sort value作为search after请求值,我们就可以这样查询下一页结果了:
GET twitter/tweet/_search
{
"size": 10,
"query": {
"match" : {
"title" : "elasticsearch"
}
},
"search_after": [2465659857, "154765"],
"sort": [
{"date": "asc"},
{"_id": "desc"}
]
}
注意只能顺序的翻页,不能随意跳页。
相关话题
- 使用Redis bitmap统计活跃用户
- Redis BitMap 统计用户活跃指标
- MySQL 命令大全
- 获取Redis里的所有健值对
- spring集成Redis各种模式 单Redis,Sentinel 哨兵模式,Redis Cluster集群,Redis Sharding集群
- 批量删除redis中以某字符串前缀的key
- Redis 冒号分隔符
- redis连接方式推荐使用
- Redis实现分布式限流
- Redis实现分布式锁
- Spring+redis实现session集群
- Redis实现分布式锁
- Redis 统计7天连续在线用户人数
- Redis+Lua实现分布式限流
- spring-data-redis与Jedis整合配置