У меня есть приложение в производстве с ElasticSearch. (Это работает), но теперь я могу добавить гем searchkick вместо использования только elasticsearch.
Для этого я добавил следующее:
В моем Gemfile добавлено:
gem 'elasticsearch-model'
gem 'elasticsearch-rails'
gem 'searchkick'
В моем config/initializers/elasticsearch.rb (я использую Amazon Elasticsearch Service для производства. Хорошо, я знаю, что это плохая практика, но я изменю это для среды переменные)
if Rails.env == "production"
Elasticsearch::Model.client = Elasticsearch::Client.new url: 'https://xxxxxxxx.xxxxxxx.amazonaws.com/'
else
Elasticsearch::Model.client = Elasticsearch::Client.new url: 'http://localhost:9200/'
end
в models/product.rb
require 'elasticsearch/model'
class Product < ActiveRecord::Base
include Elasticsearch::Model
include Elasticsearch::Model::Callbacks
searchkick
#currently use this function for search. (It works)
scope :searching, ->(query) { __elasticsearch__.search(query).records }
end
но теперь, когда я пытаюсь использовать на сервере:
Product.search("foobar") #before run: rails c production
Покажите мне следующее сообщение: Faraday::ConnectionFailed: Отказ в соединении - соединение(2)
После этого я пробую это
rake searchkick:reindex:all RAILS_ENV=production
И мне пришло такое же сообщение. Любая идея для этого?