我正在尝试运行看起来非常简单的扫描,但我遇到了一个奇怪的异常。似乎扫描创建的生成器遇到了异常,我不知道为什么。我尝试将我的 for 循环的内部包装在 try/except 中,但它仍然会引发异常,所以我猜它在点击 es 时会死掉。如果您可以帮助确定正在发生的事情,这就是我所拥有的:
old_stuff_query = {"query": {"filtered": {
"filter": {
"range": {
"expire_on": {'lte': datetime.datetime.now() - datetime.timedelta(weeks=53)}}
}}}}
scanResp = scan(client=es, query=old_stuff_query, scroll="1m", index="myIndex", doc_type="myDoc")
counter = 0
for resp in scanResp:
try:
print("YAH")
except:
print("BOO")
但我得到以下信息:
for resp in scanResp:
File "/home/will/.virtualenvs/side_project/local/lib/python2.7/site-packages/elasticsearch/helpers/__init__.py", line 314, in scan
client.clear_scroll(body={'scroll_id': [scroll_id]}, ignore=(404, ))
File "/home/will/.virtualenvs/side_project/local/lib/python2.7/site-packages/elasticsearch/client/utils.py", line 69, in _wrapped
return func(*args, params=params, **kwargs)
File "/home/will/.virtualenvs/side_project/local/lib/python2.7/site-packages/elasticsearch/client/__init__.py", line 688, in clear_scroll
params=params, body=body)
File "/home/will/.virtualenvs/side_project/local/lib/python2.7/site-packages/elasticsearch/transport.py", line 327, in perform_request
status, headers, data = connection.perform_request(method, url, params, body, ignore=ignore, timeout=timeout)
File "/home/will/.virtualenvs/side_project/local/lib/python2.7/site-packages/elasticsearch/connection/http_requests.py", line 84, in perform_request
self._raise_error(response.status_code, raw_data)
File "/home/will/.virtualenvs/side_project/local/lib/python2.7/site-packages/elasticsearch/connection/base.py", line 113, in _raise_error
raise HTTP_EXCEPTIONS.get(status_code, TransportError)(status_code, error_message, additional_info)
elasticsearch.exceptions.AuthorizationException: <exception str() failed>
最令人沮丧的部分是这完全是随机发生的。它在少于 10k 文档和超过 250k 文档后出现错误。任何帮助都会很棒,谢谢!