Невозможно разрешитьasticsearch.exceptions.SerializationError в python для получения данных из Elasti c Поиск - PullRequest
0 голосов
/ 15 января 2020

Я подключен к удаленному серверу ElasticSearch и пытаюсь получить от него данные, но не могу решить SerializationError. будет здорово, если кто-нибудь сможет мне помочь. приветствуется любой другой подход, использующий Python

  from elasticsearch import Elasticsearch, RequestsHttpConnection
  import certifi
    es = Elasticsearch( ['23t4t273545273547288fr8t83rtf8.us-east-1.aws.found.io'],
         https_auth=('userid', 'pwd'),

         connection_class= (RequestsHttpConnection),
         port=9200,
         use_ssl=True,
         verify_certs=True,
         ca_certs=certifi.where(),
      )
        if es.ping():
            print('Yay Connect')
        else:
            print('Awww it could not connect!')


     search_param = {
        "query": {
            "terms": {
                "contentType": "criteria"
             }
            }
           }

response = es.search(index="content-page-rwr-v1", body=search_param)


print ('response:', response)

Я получаю следующую ошибку в python

Yay Connect
Traceback (most recent call last):
File "Q:/MIS-DEV/QA/Pranit/PyCharm Projects/ALL Orig Scripts/ES.py", line 175, in <module>
response = es.search(index="content-page-rwr-v1", body=search_param)
File "C:\Python27\Env\lib\site-packages\elasticsearch\client\utils.py", line 76, in _wrapped
return func(*args, params=params, **kwargs)
File "C:\Python27\Env\lib\site-packages\elasticsearch\client\__init__.py", line 636, in search
doc_type, '_search'), params=params, body=body)
File "C:\Python27\Env\lib\site-packages\elasticsearch\transport.py", line 345, in perform_request
data = self.deserializer.loads(data, headers_response.get('content-type'))
File "C:\Python27\Env\lib\site-packages\elasticsearch\serializer.py", line 79, in loads
raise SerializationError('Unknown mimetype, unable to deserialize: %s' % mimetype)
elasticsearch.exceptions.SerializationError: Unknown mimetype, unable to deserialize: text/html

Заранее спасибо

1 Ответ

0 голосов
/ 28 января 2020

Я считаю, что ES <6.0 ожидает, что тип содержимого будет явно установлен в заголовке (в частности, application / json). Вы можете изменить класс соединения, чтобы сделать это, как предложено в <a href="https://github.com/elastic/elasticsearch-py/issues/407" rel="nofollow noreferrer"> этом выпуске github

...