Elasticsearch 5.0 + Rails

Установил новый ElasticSearch 5.0 сегодня и изменил мою конфигурацию Rails, чтобы указать на ES 5.

Мой elasticsearch.rbфайл конфигурации выглядит как:

require "faraday"
require "typhoeus/adapters/faraday"

config = {
  host: "http://xxx.xxx.xxx.yyyy:9200/",
  transport_options: {
    request: { timeout: 5 }
  },
}

if File.exists?("config/elasticsearch.yml")
  config.merge!(YAML.load_file("config/elasticsearch.yml").symbolize_keys)
end

У меня есть следующие связанные драгоценные камни, установленные в приложении:

gem 'elasticsearch-model'
gem 'elasticsearch-rails'
gem 'elasticsearch-persistence', require: 'elasticsearch/persistence/model'

Когда я иду, чтобы запустить мое приложение, я получаю сообщение:

[400] No handler found for uri [//****] and method [DELETE] (Elasticsearch::Transport::Transport::Errors::BadRequest)

Кто-нибудь сталкивался с этой проблемой раньше?

Я посмотрел вокруг немного, и это выглядит как ElasticSearch 5.0 имеет новый API для удаления, но я не уверен, если это является основной причиной моих проблем:

https://www.elastic.co/guide/en/elasticsearch/reference/5.0/docs-delete-by-query.html

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

1 ответ

  1. В соответствии с этим обсуждением проблема заключается в proxy_optionsконфигурации. Просто игнорируйте transport_options. Если вы измените конфигурацию следующим образом, она должна работать.

    config = {
      hosts: default_host,
      adapter: :typhoeus
    }