Python:使用Elasticsearch Scan获得10,000多个结果ScanError

时间:2019-04-15 19:18:42

标签: python elasticsearch

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

我正在使用Elasticsearch.helpers.scan。看来可行,但是随后在打印结果的中间我得到了这个错误:

elasticsearch.helpers.ScanError: Scroll request has only succeeded on 66 shards out of 80.

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

此外,如果除了Elasticsearch.helpers.scan之外还有更好/更轻松的模块/ api可以使用,请告诉我!

谢谢!

2 个答案:

答案 0 :(得分:1)

将raise_on_error = False传递给扫描功能。

res = scan(es, query=query, scroll='50m', size=1000, raise_on_error=False)

这为我修复了它。

答案 1 :(得分:0)

确实有助于找出有关异常原因的更多信息的方法非常简单 - 只需为您正在使用的 Elasticsearch python 模块打开 async void 日志:

RATING_CHOICES = [(
('poor','Poor'),
('average', 'Average'),
('good', 'Good'),
('verygood', 'Very Good'),
('excellent', 'Excellent')
),]

然后检查您的 DEBUG 调用日志。