python 实现分页显示从es中获取的数据方法

yipeiwu_com6年前Python基础

注意:使用该方法,获取的数据总数目不能超过1万,否则出错

#在python3上运行
from elasticsearch import Elasticsearch
from urllib3.connectionpool import xrange

def get_page_data(result):
  for hit in result['hits']['hits']:
    print(hit)

if __name__=='__main__':
  es_host = "0.0.0.0"
  port = 9200
  timeout = 15000
  index = "gather-v10"
  es = Elasticsearch(hosts=es_host,port=port,timeout=timeout)
  # gather-v10 总条数
  count = es.count(index=index)['count']
  # 每页显示条数
  page_line = 2
  #显示多少页
  if (count%page_line==0):
    page = (int)(count/page_line)
  else:
    page = (int)(count/page_line+1)
  # 要生成很大的数字序列的时候,
  # 用xrange会比range性能优很多,
  # 因为不需要一上来就开辟一块很大的内存空间。
  # x = range(0,10);type(x) 是一个列表
  # x1 = xrange(0,10);type(x1) 是一个生成器 xrange(0,10)
  for x in xrange(0,page):
    rs = es.search(index=index,body={
      "query":{
        "match_all":{}
      },
      "from":x*page_line,
      "size":page_line
    })
    get_page_data(rs)

以上这篇python 实现分页显示从es中获取的数据方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python实现ip代理池功能示例

本文实例讲述了python实现ip代理池功能。分享给大家供大家参考,具体如下: 爬取的代理源为西刺代理。 用xpath解析页面 用telnet来验证ip是否可用 把有效的i...

Python socket.error: [Errno 98] Address already in use的原因和解决方法

一、原因浅析 今天在写一个Python与html5 Websocket 实例,么次终止运行重新运行脚本总是提示地址已经存在并且被使用!查询相关文档才知道在socket编程中,当通过客户端...

python如何压缩新文件到已有ZIP文件

本文为大家分享了python压缩新文件到已有ZIP文件的具体代码,供大家参考,具体内容如下 要点在于使用Python标准库zipfile创建压缩文件时,如果使用'a'模式时,可以追加新内...

深入浅析Python中的yield关键字

前言 python中有一个非常有用的语法叫做生成器,所利用到的关键字就是yield。有效利用生成器这个工具可以有效地节约系统资源,避免不必要的内存占用。 一段代码 def fun()...

Python3.6使用tesseract-ocr的正确方法

Tesseract介绍 tesseract是一个挺不错的OCR引擎,目前的问题是最新的中文资料相对较少,过时、不准确的信息偏多。 tesseract是一个google支持的开源ocr项目...