elasticsearch,Python,Python 3.x,elasticsearch" /> elasticsearch,Python,Python 3.x,elasticsearch" />

Python scan()不';t滚动-弹性搜索

Python scan()不';t滚动-弹性搜索,python,python-3.x,elasticsearch,Python,Python 3.x,elasticsearch,我无法扫描整个ElasticSearch索引 ElasticSearch版本:1.7.5 我正在尝试扫描索引,但它总是在获取1000个文档后失败 res = helpers.scan(es, index="twitter", query={"query": {"match_all": {}}}, request_timeout=60) for hit in res: do_some_stuff() 回溯: WARNING:elasticsearc

我无法扫描整个ElasticSearch索引

ElasticSearch版本:1.7.5

我正在尝试扫描索引,但它总是在获取1000个文档后失败

res = helpers.scan(es, index="twitter", query={"query": {"match_all": {}}},
                   request_timeout=60)

for hit in res:
    do_some_stuff()
回溯:

WARNING:elasticsearch:GET http://example.com:9200/_search/scroll?scroll=5m [status:400 request:0.002s]
WARNING:elasticsearch:DELETE http://example.com:9200/_search/scroll [status:400 request:0.001s]
Traceback (most recent call last):
  File "/project/.env/lib/python3.5/site-packages/elasticsearch/helpers/__init__.py", line 301, in scan
    resp = client.scroll(scroll_id, scroll=scroll, request_timeout=request_timeout)
  File "/project/.env/lib/python3.5/site-packages/elasticsearch/client/utils.py", line 73, in _wrapped
    return func(*args, params=params, **kwargs)
  File "/project/.env/lib/python3.5/site-packages/elasticsearch/client/__init__.py", line 1024, in scroll
    params=params, body=body)
  File "/project/.env/lib/python3.5/site-packages/elasticsearch/transport.py", line 312, in perform_request
    status, headers, data = connection.perform_request(method, url, params, body, ignore=ignore, timeout=timeout)
  File "/project/.env/lib/python3.5/site-packages/elasticsearch/connection/http_urllib3.py", line 128, in perform_request
    self._raise_error(response.status, raw_data)
  File "/project/.env/lib/python3.5/site-packages/elasticsearch/connection/base.py", line 125, in _raise_error
    raise HTTP_EXCEPTIONS.get(status_code, TransportError)(status_code, error_message, additional_info)
elasticsearch.exceptions.RequestError: <exception str() failed>

它返回了100个文档和滚动id。但是这个卷轴id是524个字符长的。这可能是个问题

我已经安装了最新的弹性包客户端。所以我从6.1.1降到了1.7.0

版本1.7.0中的ElasticSearch不支持POST请求中的JSON,但较新版本支持它

POST example.com:9200/twitter/_search?scroll=1m

{
    "size": 100,
    "query": {
        "match_all": {}
    }
}