• es查询限制10000,使用scroll


    报错:

    TransportError(500, ‘search_phase_execution_exception’, ‘Result window is too large, from + size must be less than or equal to: [10000] but was [10010]. See the scroll api for a more efficient way to request large data sets. This limit can be set by changing the [index.max_result_window] index level setting.’)

    原因:

    这个错误提示意味着你正在尝试从Elasticsearch中检索大量的数据,但是你的请求超过了Elasticsearch的默认结果窗口大小限制。默认情况下,Elasticsearch的结果窗口大小限制为10000,这意味着你一次最多只能检索10000个文档。

    为了解决这个问题,你可以使用Elasticsearch的scroll API来检索大量的数据。scroll
    API允许你在多个请求之间保持搜索上下文,以便你可以逐步检索大量的数据,而不会超出默认结果窗口大小的限制。

    另外,你也可以通过更改Elasticsearch的索引级别设置来增加结果窗口大小限制。你可以通过设置"index.max_result_window"参数来调整结果窗口大小限制。但是,这种方法并不推荐,因为它可能会导致Elasticsearch性能下降,特别是在处理大量数据时。

    总之,建议你使用scroll API来检索大量的数据,以避免超出默认结果窗口大小限制。

    原代码:

    def main():
    for i in range(0, int(allapge(index) / 10) + 2):
    	try:
            res = es_yt.search(index=index, body=search_body(i))
            list_es = res['hits']['hits']
            s = helpers.bulk(es_ebscn, list_es)
            print('已完成', i)
            print(s)
        except Exception as e:
            print(e)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    使用scroll 新代码:

    def main():
        scroll_time = '2m'  # 滚动查询的保持时间
        page_size = 1000  # 每个滚动请求返回的文档数
    
        res = es_yt.search(index=index, body=search_body(0), scroll=scroll_time, size=page_size)
        scroll_id = res['_scroll_id']
        scroll_size = res['hits']['total']
        print('scroll_size', scroll_size)
    
        while (scroll_size > 0):
    
            list_es = res['hits']['hits']
            print(list_es[0:1])
            if list_es:
                s = helpers.bulk(es_ebscn, list_es)
                print('scroll_size', scroll_size)
                print(s)
                res = es_yt.scroll(scroll_id=scroll_id, scroll=scroll_time)
            else:
                print('结束')
                break
    
        es_yt.clear_scroll(scroll_id=scroll_id)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
  • 相关阅读:
    HAIYPRH-PEG-DSPE,DSPE-PEG-HAIYPRH,磷脂-聚乙二醇-靶向肽HAIYPRH试剂供应
    极智Paper | 多任务统一网络 YOLOR
    一个月爆肝一个基于SpringBoot的在线教育系统【源码开源】【建议收藏】
    Looker Studio | 带来强大的探索、更新鲜的数据和更快的过滤
    什么是 PWA
    JavaBean事件
    SpringMVC修炼之旅(1)什么是SpringMVC
    大火的4D Radar数据集及基线模型汇总
    Day12--点击轮播图跳转到商品详情页
    二叉树 | 迭代遍历 | leecode刷题笔记
  • 原文地址:https://blog.csdn.net/qq_44821149/article/details/134038902