【问题标题】:Elasticsearch::Transport::Transport::Errors::BadRequest [400] while creating index创建索引时的 Elasticsearch::Transport::Transport::Errors::BadRequest [400]
【发布时间】:2020-04-16 20:25:16
【问题描述】:

在我的 Rails 应用程序中,安装了“elasticsearch-model”和“elasticsearch-rails”gem,elasticsearch (v5.1.1) 在默认端口上运行,模型看起来像这样

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'

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4 elasticsearch


    【解决方案1】:

    经过一番调查,问题出在我的初始化程序上。更改主机后它起作用了。

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

    更新 显然该配置适用于 Elasticsearch 2.4.x。

    【讨论】:

    • 嗨 @GirdharBandi 我是 Rails 新手,请告诉我在哪里添加此行。
    • @AhmedRezaSiddique 您可以在 config/initializers/ 中创建一个文件并将您的配置添加到该文件中。
    • 多么美妙的答案。确实删除 http 效果很好
    【解决方案2】:

    在我的场景中,将 DATABASE_URL 格式更改为 .env 或您保留它的任何位置,来自:

    DATABASE_URL=postgres:/myapp_development?pool=5
    

    到:

    DATABASE_URL=postgresql://user:password@localhost:5432/myapp_development
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多