微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Elasticsearch 7.11 Python 扫描是无限的

如何解决Elasticsearch 7.11 Python 扫描是无限的

page = helpers.scan(
        c,query=q,index=idx,scroll='5m',size=1000,)

    i = 0
    for hit in page:
        i = i + 1
        if i % 1000 == 0 and i > 0:
            print("dump finished %i items" % i)
        yield {"_source": hit['_source'],"_id": hit['_id']}

问题是这个循环扫描永远不会结束,最后一批结果可能会被无限循环。
我将数据转储到一个文件中,第一个条目出现了 1 次。最后一个条目被重复写入,循环继续。

不确定是我的代码还是库中的错误

更新 1:

    slices = [
        delayed(iterate_slice)(1,es_host,idx,slices,q,size,logger_name)
    ]

    return db.from_delayed(slices)

那么 iterate_slice 的代码如下:

    page = helpers.scan(
        c,size=10000,)

    i = 0
    for hit in page:
        i++
        if i % 1000 == 0 and i > 0:
            print("dump finished %i items" % i)
        yield {"_source": hit['_source'],"_id": hit['_id']}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。