python 实现分页显示从es中获取的数据方法
注意:使用该方法,获取的数据总数目不能超过1万,否则出错
#在python3上运行
fromelasticsearchimportElasticsearch
fromurllib3.connectionpoolimportxrange
defget_page_data(result):
forhitinresult['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)
forxinxrange(0,page):
rs=es.search(index=index,body={
"query":{
"match_all":{}
},
"from":x*page_line,
"size":page_line
})
get_page_data(rs)
以上这篇python实现分页显示从es中获取的数据方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。