首页 > 解决方案 > Python 中的 Elasticsearch search_phase_execution_exception

问题描述

我通过在 Python 中使用带有以下代码的滚动 api 来获取我所有的 Elasticsearch 文档。

size = 100
data = es.search(
            index=index,
            scroll='25m',
            size=size,
            body=body
        )
max_val = data['hits']['total']['value']

sid = data['_scroll_id']
scroll_size = len(data['hits']['hits'])
while scroll_size > 0:
    .........
    data = es.scroll(scroll_id=sid, scroll='25m')
    sid = data['_scroll_id']
    scroll_size = len(data['hits']['hits'])

在某些索引中,我有不到 100 个文档,其中一些我有超过 30000 个文档,这就是我使用滚动 api 的原因。

我已经通过本教程编写了这段代码

该代码有效,但一段时间后,我收到以下错误。

NotFoundError(404, 'search_phase_execution_exception', 'No search context found for id

我试图通过更改滚动来解决此错误。卷轴是 5m,然后我设置了 25m,但仍然出现同样的错误。我该如何解决这个问题?

谢谢回答

标签: pythonelasticsearch

解决方案


推荐阅读