elasticsearch.exceptions.RequestError: RequestError(400, 'no handler found for uri [/haystack_books/modelresult/_bulk] and method [POST]',

649 views Asked by At

I'm writing a site on Django, I'm currently implementing a search system using django-haystack via elasticsearch

I did everything as in the official documentation, but when I execute the command python manage.py rebuild_index

I am getting an error

elasticsearch.exceptions.RequestError: RequestError(400, 'no handler found for uri [/haystack_books/modelresult/_bulk] and method [POST]', 'no handler 
found for uri [/haystack_books/modelresult/_bulk] and method [POST]')

Here is the full error trace:

GET http://127.0.0.1:9200/haystack_books/_mapping [status:401 request:0.004s]
PUT http://127.0.0.1:9200/haystack_books [status:401 request:0.003s]
POST http://127.0.0.1:9200/haystack_books/modelresult/_bulk [status:400 request:0.004s]
POST http://127.0.0.1:9200/haystack_books/modelresult/_bulk [status:400 request:0.006s]
POST http://127.0.0.1:9200/haystack_books/modelresult/_bulk [status:400 request:0.008s]
POST http://127.0.0.1:9200/haystack_books/modelresult/_bulk [status:400 request:0.006s]
POST http://127.0.0.1:9200/haystack_books/modelresult/_bulk [status:400 request:0.013s]
[ERROR/MainProcess] Failed indexing 1 - 11 (retry 5/5): RequestError(400, 'no handler found for uri [/haystack_books/modelresult/_bulk] and method [POS
T]', 'no handler found for uri [/haystack_books/modelresult/_bulk] and method [POST]') (pid 3932): RequestError(400, 'no handler found for uri [/haysta
ck_books/modelresult/_bulk] and method [POST]', 'no handler found for uri [/haystack_books/modelresult/_bulk] and method [POST]')
Traceback (most recent call last):
  File "D:\Джанго проект\venv\lib\site-packages\haystack\management\commands\update_index.py", line 111, in do_update
    backend.update(index, current_qs, commit=commit)
  File "D:\Джанго проект\venv\lib\site-packages\haystack\backends\elasticsearch_backend.py", line 222, in update
    bulk(self.conn, prepped_docs, index=self.index_name, doc_type="modelresult")
  File "D:\Джанго проект\venv\lib\site-packages\elasticsearch\helpers\actions.py", line 410, in bulk
    for ok, item in streaming_bulk(
  File "D:\Джанго проект\venv\lib\site-packages\elasticsearch\helpers\actions.py", line 329, in streaming_bulk
    for data, (ok, info) in zip(
  File "D:\Джанго проект\venv\lib\site-packages\elasticsearch\helpers\actions.py", line 256, in _process_bulk_chunk
    for item in gen:
  File "D:\Джанго проект\venv\lib\site-packages\elasticsearch\helpers\actions.py", line 195, in _process_bulk_chunk_error
    raise error
  File "D:\Джанго проект\venv\lib\site-packages\elasticsearch\helpers\actions.py", line 240, in _process_bulk_chunk
    resp = client.bulk(*args, body="\n".join(bulk_actions) + "\n", **kwargs)
  File "D:\Джанго проект\venv\lib\site-packages\elasticsearch\client\utils.py", line 347, in _wrapped
    return func(*args, params=params, headers=headers, **kwargs)
  File "D:\Джанго проект\venv\lib\site-packages\elasticsearch\client\__init__.py", line 472, in bulk
    return self.transport.perform_request(
  File "D:\Джанго проект\venv\lib\site-packages\elasticsearch\transport.py", line 466, in perform_request
    raise e
  File "D:\Джанго проект\venv\lib\site-packages\elasticsearch\transport.py", line 427, in perform_request
    status, headers_response, data = connection.perform_request(
  File "D:\Джанго проект\venv\lib\site-packages\elasticsearch\connection\http_urllib3.py", line 291, in perform_request
    self._raise_error(response.status, raw_data)
  File "D:\Джанго проект\venv\lib\site-packages\elasticsearch\connection\base.py", line 328, in _raise_error
    raise HTTP_EXCEPTIONS.get(status_code, TransportError)(
elasticsearch.exceptions.RequestError: RequestError(400, 'no handler found for uri [/haystack_books/modelresult/_bulk] and method [POST]', 'no handler 
found for uri [/haystack_books/modelresult/_bulk] and method [POST]')
[ERROR/MainProcess] Error updating books using default 
Traceback (most recent call last):
  File "D:\Джанго проект\venv\lib\site-packages\haystack\management\commands\update_index.py", line 274, in handle
    self.update_backend(label, using)
  File "D:\Джанго проект\venv\lib\site-packages\haystack\management\commands\update_index.py", line 319, in update_backend
    max_pk = do_update(
  File "D:\Джанго проект\venv\lib\site-packages\haystack\management\commands\update_index.py", line 111, in do_update
    backend.update(index, current_qs, commit=commit)
  File "D:\Джанго проект\venv\lib\site-packages\haystack\backends\elasticsearch_backend.py", line 222, in update
    bulk(self.conn, prepped_docs, index=self.index_name, doc_type="modelresult")
  File "D:\Джанго проект\venv\lib\site-packages\elasticsearch\helpers\actions.py", line 410, in bulk
    for ok, item in streaming_bulk(
  File "D:\Джанго проект\venv\lib\site-packages\elasticsearch\helpers\actions.py", line 329, in streaming_bulk
    for data, (ok, info) in zip(
  File "D:\Джанго проект\venv\lib\site-packages\elasticsearch\helpers\actions.py", line 256, in _process_bulk_chunk
    for item in gen:
  File "D:\Джанго проект\venv\lib\site-packages\elasticsearch\helpers\actions.py", line 195, in _process_bulk_chunk_error
    raise error
  File "D:\Джанго проект\venv\lib\site-packages\elasticsearch\helpers\actions.py", line 240, in _process_bulk_chunk
    resp = client.bulk(*args, body="\n".join(bulk_actions) + "\n", **kwargs)
  File "D:\Джанго проект\venv\lib\site-packages\elasticsearch\client\utils.py", line 347, in _wrapped
    return func(*args, params=params, headers=headers, **kwargs)
  File "D:\Джанго проект\venv\lib\site-packages\elasticsearch\client\__init__.py", line 472, in bulk
    return self.transport.perform_request(
  File "D:\Джанго проект\venv\lib\site-packages\elasticsearch\transport.py", line 466, in perform_request
    raise e
  File "D:\Джанго проект\venv\lib\site-packages\elasticsearch\transport.py", line 427, in perform_request
    status, headers_response, data = connection.perform_request(
  File "D:\Джанго проект\venv\lib\site-packages\elasticsearch\connection\http_urllib3.py", line 291, in perform_request
    self._raise_error(response.status, raw_data)
  File "D:\Джанго проект\venv\lib\site-packages\elasticsearch\connection\base.py", line 328, in _raise_error
    raise HTTP_EXCEPTIONS.get(status_code, TransportError)(
elasticsearch.exceptions.RequestError: RequestError(400, 'no handler found for uri [/haystack_books/modelresult/_bulk] and method [POST]', 'no handler 
found for uri [/haystack_books/modelresult/_bulk] and method [POST]')
Traceback (most recent call last):
  File "D:\Джанго проект\online_book\manage.py", line 22, in <module>
    main()
  File "D:\Джанго проект\online_book\manage.py", line 18, in main
    execute_from_command_line(sys.argv)
  File "D:\Джанго проект\venv\lib\site-packages\django\core\management\__init__.py", line 446, in execute_from_command_line
    utility.execute()
  File "D:\Джанго проект\venv\lib\site-packages\django\core\management\__init__.py", line 440, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "D:\Джанго проект\venv\lib\site-packages\django\core\management\base.py", line 402, in run_from_argv
    self.execute(*args, **cmd_options)
  File "D:\Джанго проект\venv\lib\site-packages\django\core\management\base.py", line 448, in execute
    output = self.handle(*args, **options)
  File "D:\Джанго проект\venv\lib\site-packages\haystack\management\commands\rebuild_index.py", line 66, in handle
    call_command("update_index", **update_options)
  File "D:\Джанго проект\venv\lib\site-packages\django\core\management\__init__.py", line 198, in call_command
    return command.execute(*args, **defaults)
  File "D:\Джанго проект\venv\lib\site-packages\django\core\management\base.py", line 448, in execute
    output = self.handle(*args, **options)
  File "D:\Джанго проект\venv\lib\site-packages\haystack\management\commands\update_index.py", line 274, in handle
    self.update_backend(label, using)
  File "D:\Джанго проект\venv\lib\site-packages\haystack\management\commands\update_index.py", line 319, in update_backend
    max_pk = do_update(
  File "D:\Джанго проект\venv\lib\site-packages\haystack\management\commands\update_index.py", line 111, in do_update
    backend.update(index, current_qs, commit=commit)
  File "D:\Джанго проект\venv\lib\site-packages\haystack\backends\elasticsearch_backend.py", line 222, in update
    bulk(self.conn, prepped_docs, index=self.index_name, doc_type="modelresult")
  File "D:\Джанго проект\venv\lib\site-packages\elasticsearch\helpers\actions.py", line 410, in bulk
    for ok, item in streaming_bulk(
  File "D:\Джанго проект\venv\lib\site-packages\elasticsearch\helpers\actions.py", line 329, in streaming_bulk
    for data, (ok, info) in zip(
    status, headers_response, data = connection.perform_request(
  File "D:\Джанго проект\venv\lib\site-packages\elasticsearch\connection\http_urllib3.py", line 291, in perform_request
    self._raise_error(response.status, raw_data)
  File "D:\Джанго проект\venv\lib\site-packages\elasticsearch\connection\base.py", line 328, in _raise_error
    raise HTTP_EXCEPTIONS.get(status_code, TransportError)(
elasticsearch.exceptions.RequestError: RequestError(400, 'no handler found for uri [/haystack_books/modelresult/_bulk] and method [POST]', 'no handler 
found for uri [/haystack_books/modelresult/_bulk] and method [POST]')

I googled this problem and I have an idea that it has something to do with the incompatibility of haystack and django versions. If so, what versions do I need to use to make everything work?

I use the following versions:

Django==4.1
django-haystack==2.5.0
0

There are 0 answers