Python实现Elasticsearch数据分页查询与显示

林舟
林舟
发布时间:2026-10-13 | 3人浏览过
原创

本文介绍在Python中利用elasticsearch库从Elasticsearch集群获取数据并实现分页显示的具体方法。通过计算总条数确定页数,利用xrange优化循环性能,并设置from和size参数执行搜索。需注意该方法适用于数据总量不超过1万条的场景,超出可能导致错误。

需要特别注意的是,应用此方案时,所获取的数据总记录数必须控制在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实现从Elasticsearch获取数据并进行分页显示的全部实现细节,旨在为读者提供有效的参考与帮助,同时也感谢大家的支持。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表