码迷,mamicode.com
首页 > 其他好文 > 详细

分页(pagination)

时间:2014-05-28 13:40:41      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:c   class   http   a   int   get   

 empty search above中我们说过,在cluster中进行无任何条件的搜索的时候,符合条件的有14个document,但是在返回的hits数组中只有10个。那么怎么看到其他的document呢。

就像是SQL使用关键字LIMIT进行分页一样,ES也提供了from和size参数实现类似的功能。

size:返回的结果数量,默认10

from:跳过多少记录,默认0

如果你想也每页现实五个数据,前散页的请求应该如下所示:

GET /_search?size=5
GET
/_search?size=5&from=5
GET
/_search?size=5&from=10

应该注意在一次请求中分页层次过深或者每页的数据量过大。搜索的结果在返回之前是要存储的。要知道,搜索是跨shard的,每个shard都生成自己的结果集,然后这些集合被整理,用来保证顺序是正确的。

 

分布式系统中的深度分页

问了理解为什么深度分页是一个问题,首先想象一下我们在一个有5个primary shard的index进行搜索,当我们请求第一页(前十条),每个shard产生了各自的前十条数据到requesting node,然后对这50个数据进行排序,并选择前面的十条数据进行返回。现在设想,我们请求第1000页的数据,也就是10001到10010。和上面的方式是一样的,每个shard都要产生各自前面10010个数据,然后requestion node 对50010进行排序,然后丢弃50040个数据。就这样,在分布式系统中,随着我们搜索的深入,对排序的消耗就随着增长。基于这个原因,web搜索引擎对任何的请求返回超过1000个结果。

 

原文:http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/pagination.html

分页(pagination),布布扣,bubuko.com

分页(pagination)

标签:c   class   http   a   int   get   

原文地址:http://www.cnblogs.com/blog1350995917/p/3755119.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!