elasticsearch.scroll()显示匹配,但如果滚动返回则返回空结果

时间:2019-05-03 12:19:42

标签: elasticsearch

我正在访问一个弹性数据库,我想使用scroll()逐个返回结果,这需要我使用scroll_id方法来获取search()

结果大小可以在0到40000之间,这就是为什么我不能整个使用search()的原因。

当点击次数很大时,我没有注意到问题,但是当只有一次点击时,滚动不会返回任何内容。

query = {"query":{"match":{"message": "Techtotic"}}, "sort": [{"@timestamp":"asc"}]}

scrollid = es.search(index="ts-shanks*", size=2, scroll="50m", body=query)

hits = scrollid["hits"]["total"]

scrollid = scrollid["_scroll_id"]

for i in range(hits):

    entry = es.scroll(scroll_id=scrollid, scroll="1m", filter_path=req_data)

    try:
        print(entry["hits"]["hits"][0]["_source"]["message"])

    except Exception:
        print(json.dumps(entry, indent=4))

输出在与'''search()'''对应的打印中显示匹配的命中,但在与scroll()对应的匹配中不显示。

此外,无论有多少点击,我们得到的滚动的最后输出总是触发except块,因为它是空的。

我听说search_type="scan"会解决它,但它似乎表明它已被弃用。

0 个答案:

没有答案