谁还不知道Elasticsearch分页的三种方法?

2026-04-11 12:278阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1234个文字,预计阅读时间需要5分钟。

谁还不知道Elasticsearch分页的三种方法?

一、从+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分钟。

谁还不知道Elasticsearch分页的三种方法?

一、从+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条数据。

阅读全文