ES分页查询的最佳实践:三种方案
from elasticsearch import Elasticsearch
# 假设es_host是Elasticsearch服务器的地址
es = Elasticsearch(es_host)
# 查询索引名为my_index的数据
index_name = 'my_index'
# 分页查询的最佳实践
def paginated_query(page, page_size):
# 计算跳过的文档数
from_ = (page - 1) * page_size
# 执行分页查询
response = es.search(
index=index_name,
from_=from_,
size=page_size,
body={
"query": {
"match_all": {}
}
}
)
return response
# 使用示例
page = 1
page_size = 10
results = paginated_query(page, page_size)
print(results)
这段代码展示了如何使用Elasticsearch Python API进行分页查询。其中paginated_query
函数接受页码page
和每页大小page_size
作为参数,计算跳过的文档数量,并执行查询。这是一个简洁且高效的分页查询实现方式。
评论已关闭