网络编程
位置:首页>> 网络编程>> Python编程>> python 实现分页显示从es中获取的数据方法

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

作者:sxf_0123  发布时间:2023-04-21 07:13:18 

标签:python,es,数据

注意:使用该方法,获取的数据总数目不能超过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)

来源:https://blog.csdn.net/sxf_123456/article/details/77366323

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com