私は非常に簡単なスキャンのように思っていますが、奇妙な例外が発生しています。スキャンによって生成されたジェネレータが例外を起こしているように思えますが、理由はわかりません。私はtry/exceptで私のforループの内部をラップしようとしましたが、それでも例外をスローするので、私はそれがesを打つときに死んでいると推測しています。AuthorizationException:<例外str()が失敗しました> Scan on
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個以上のドキュメントの後でエラーを出しました。どんな助けも素晴らしいだろう、ありがとう!
私は同じ問題に遭遇しました。これはおそらくPython2/python3の互換性のために(将来的に)追加されたユニコード処理のようです。純粋なpython2.7では動作するようです。 –