分页(pagination)

在 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

时间: 2024-10-16 16:08:40

分页(pagination)的相关文章

分页Pagination

分页Pagination REST framework提供了分页的支持. 我们可以在配置文件中设置全局的分页方式,如: REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', 'PAGE_SIZE': 100 # 每页数目 } 也可通过自定义Pagination类,来为视图添加不同分页行为.在视图中通过pagination_clas属性来指明. from re

django 分页 pagination的使用记录

1.安装 pip install django-pagination 2.修改setting.py文件 INSTALLED_APPS = [ # ** 'pagination',] MIDDLEWARE_CLASSES = ( # ... 'pagination.middleware.PaginationMiddleware', ) TEMPLATE_CONTEXT_PROCESSORS = [ 'django.contrib.auth.context_processors.auth', 'dj

关于分页Pagination的使用

在这个例子当中,用的是ssm框架整合,并且用的是Pagination实现分页 先来看一下分页中用到的类的源码 Paginable.java 1 package cn.itcast.common.page; 2 3 /** 4 * 分页接口 5 */ 6 public interface Paginable { 7 /** 8 * 总记录数 9 * 10 * @return 11 */ 12 public int getTotalCount(); 13 14 /** 15 * 总页数 16 * 1

ElementUI分页Pagination自动到第一页

当数据量过多时,使用分页请求数据. 设置分页的页数自动回到第一页. 例: <div class="pagination"> <el-pagination background layout="prev, pager, next" :current-page.sync="currentPage" @current-change="current_change" :page-size="7"

分页/pagination

package org.pagination;import java.util.List; public interface Pagination<T> {public Integer getTotalElements();public List<T> getPageList();} package org.pagination; import java.util.List; public interface QueryHandler<T> {public Intege

五:Vue之ElementUI 表格Table与分页Pagination组件化

(注:本文适用于有一定Vue基础或开发经验的读者,文章就知识点的讲解不一定全面,但却是开发过程中很实用的) 在平时的web项目开发过程中,列表分页查询展示应用的很频繁,为了便于阅读并减少代码的冗余,所以对ElementUI的表格和分页组件进行了二次封装. 首先在工程下的components目录下创建common文件夹并新建commonTable.vue文件,添加如下代码: <template> <div id="commonTable"> <el-tabl

jquery+jquery.pagination+php+ajax 无刷新分页

<!DOCTYPE html> <html ><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>预约列表</title> <link rel="stylesheet" href="./static/pagination.css"> &

ajax 分页(jquery分页插件pagination) 小例3

<#macro ajaxPaginte url > <script type="text/javascript"> var PageSize = 10;//每页行数 var IsInit = true;//初始化 var search= function(pageIndex,initFlag) { var url = "${url}"; $.ajax({ type: 'GET', url: url, data: { pageNumber:pa

bootstrap table 服务器端分页--ashx+ajax

1.准备静态页面 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <title></title> 6 <meta charset="utf-8" /> 7 <link rel="

Bootstrap 分页、标签、徽章、超大屏幕、页面标题

分页(pagination), 是一种无序列表 1.默认的分页(.pagination) 代码示例: 1 <ul class="pagination"> 2 <li><a href="#">«</a></li> 3 <li><a href="#">1</a></li> 4 <li><a href="#"