2017-01-06 3 views
1

В моем приложении rails с установленными камнями 'elasticsearch-model' и 'elasticsearch-rails' и elasticsearch (v5.1.1), работающими на порт по умолчанию и модель, которая выглядит следующим образомElasticsearch :: Transport :: Transport :: Errors :: BadRequest [400] при создании индекса

class Article 
    include Mongoid::Document 
    include Elasticsearch::Model 
    include Elasticsearch::Model::Callbacks 

    field :title, type: String 
    field :author, type: String 

    index_name "articles-#{Rails.env}" 
end 

и инициализатор что-то вроде этого

Elasticsearch::Model.client = Elasticsearch::Client.new host: ENV['ELASTICSEARCH_URL'] || "http://localhost:9200/" 

Когда я пытаюсь импортировать или создать индексировать

Article.import force:true 
Article.__elasticsearch__.create_index! force: true 

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

Elasticsearch::Transport::Transport::Errors::BadRequest: [400] No handler found for uri [//articles-development] and method [DELETE] 
    from /Users/bgr/.rvm/gems/ruby-2.3.0/gems/elasticsearch-transport-1.0.17/lib/elasticsearch/transport/transport/base.rb:201:in `__raise_transport_error' 
    from /Users/bgr/.rvm/gems/ruby-2.3.0/gems/elasticsearch-transport-1.0.17/lib/elasticsearch/transport/transport/base.rb:312:in `perform_request' 
    from /Users/bgr/.rvm/gems/ruby-2.3.0/gems/elasticsearch-transport-1.0.17/lib/elasticsearch/transport/transport/http/faraday.rb:20:in `perform_request' 
    from /Users/bgr/.rvm/gems/ruby-2.3.0/gems/elasticsearch-transport-1.0.17/lib/elasticsearch/transport/client.rb:128:in `perform_request' 

ответ

2

После некоторого исследования проблемы была с моим инициализатором. он работал после смены хоста.

Elasticsearch::Model.client = Elasticsearch::Client.new host: ENV['ELASTICSEARCH_URL'] || "localhost:9200" 

Update Видимо конфигурация работает с Elasticsearch 2.4.x.

+0

hi @GirdharBandi новичок в рельсах, можете ли вы рассказать мне, где добавить эту строку. –

+0

@AhmedRezaSiddique вы можете создать файл в config/initializers/и добавить к нему свой конфиг. – GiridharBandi

+0

Какой замечательный ответ. Действительно, удаление http просто сработало – ArkoD

Смежные вопросы