【发布时间】:2016-10-04 15:03:37
【问题描述】:
我有一个使用 ElasticSearch 的生产应用程序。 (它有效)但现在我可以添加 searchkick gem 而不是只使用弹性搜索。
为此,我添加了以下内容:
在我的 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: Connection denied - connect(2)
然后我试试这个
rake searchkick:reindex:all RAILS_ENV=production
我也收到了同样的信息。有什么想法吗?
【问题讨论】:
标签: ruby ruby-on-rails-4 elasticsearch amazon-ec2 searchkick