谁还不知道Elasticsearch分页的三种方法?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1234个文字,预计阅读时间需要5分钟。
一、从+size+浅分页+浅分页可以理解为简单意义上的分页。其原理非常简单,就是查询前20条数据,然后截断前10条,只返回10-20条的数据。这样实际上白白浪费了前10条数据的查询。
一、from + size 浅分页"浅"分页可以理解为简单意义上的分页。
它的原理很简单,就是查询前20条数据,然后截断前10条,只返回10-20的数据。这样其实白白浪费了前10条的查询。
GET test_dev/_search
{
"query": {
"bool": {
"filter": [
{
"term": {
"age": 28
}
}
]
}
},
"size": 10,
"from": 20,
"sort": [
{
"timestamp": {
"order": "desc"
},
"_id": {
"order": "desc"
}
}
]
}
其中,from定义了目标数据的偏移值,size定义当前返回的数目。默认from为0,size为10,即所有的查询默认仅仅返回前10条数据。
在这里有必要了解一下from/size的原理:
因为es是基于分片的,假设有5个分片,from=100,size=10。则会根据排序规则从5个分片中各取回100条数据数据,然后汇总成500条数据后选择最后面的10条数据。
本文共计1234个文字,预计阅读时间需要5分钟。
一、从+size+浅分页+浅分页可以理解为简单意义上的分页。其原理非常简单,就是查询前20条数据,然后截断前10条,只返回10-20条的数据。这样实际上白白浪费了前10条数据的查询。
一、from + size 浅分页"浅"分页可以理解为简单意义上的分页。
它的原理很简单,就是查询前20条数据,然后截断前10条,只返回10-20的数据。这样其实白白浪费了前10条的查询。
GET test_dev/_search
{
"query": {
"bool": {
"filter": [
{
"term": {
"age": 28
}
}
]
}
},
"size": 10,
"from": 20,
"sort": [
{
"timestamp": {
"order": "desc"
},
"_id": {
"order": "desc"
}
}
]
}
其中,from定义了目标数据的偏移值,size定义当前返回的数目。默认from为0,size为10,即所有的查询默认仅仅返回前10条数据。
在这里有必要了解一下from/size的原理:
因为es是基于分片的,假设有5个分片,from=100,size=10。则会根据排序规则从5个分片中各取回100条数据数据,然后汇总成500条数据后选择最后面的10条数据。

