Python:使用 Elasticsearch Scan 得到 10000 多条结果 ScanError

hel*_*d95 5 python elasticsearch

我想查询 Elasticsearch 并打印查询的所有结果。默认最大值为 10,000,但我想将此最大值扩展到更大。我正在使用 Python。

我正在使用 Elasticsearch.helpers.scan。它似乎有效,但是在打印结果的过程中,我收到此错误:

elasticsearch.helpers.ScanError: Scroll request has only succeeded on 66 shards out of 80.
Run Code Online (Sandbox Code Playgroud)

我完全不确定这意味着什么,有人可以解释并提供解决方案吗?

另外,如果有比 Elasticsearch.helpers.scan 更好/更容易使用的模块/api,请告诉我!

谢谢!

Mic*_*ndo 5

将 raise_on_error=False 传递给扫描函数。

res = scan(es, query=query, scroll='50m', size=1000, raise_on_error=False)
Run Code Online (Sandbox Code Playgroud)

这为我修好了。

  • 虽然对于某些尽力而为的查询很有帮助,但这并不是一个通用的“修复”。这会默默地丢弃整个分片的文档并破坏结果集的完整性;与您的查询匹配的文档可能存在,但不会返回。请小心使用此解决方法。 (2认同)