Capistranoを使用したデプロイメントでこれを行う必要があるようです。config/deploy.rbファイルの例を次に示します。
[basic parts omitted]
after "deploy", "bundler:bundle_install"
after "bundler:bundle_install", "db:db_migrate"
after "deploy:db_migrate", "deploy:elastic_search_indexing"
namespace :bundler do
desc 'call bundle install'
task :bundle_install do
run "cd #{deploy_to}/current && bundle install"
end
end
namespace :db do
desc 'fire the db migrations'
task :db_migrate do
run "cd #{deploy_to}/current && bundle exec rake db:migrate RAILS_ENV=\"production\""
end
end
namespace :elasticsearch do
desc 'run elasticsearch indexing via tire'
task :index_classes do
run "cd #{deploy_to}/current && bundle exec rake environment tire:import CLASS=YourObject FORCE=true "
end
end
[rest omitted]
/etc/elasticsearch/elasticsearch.ymlのターゲットマシン(Linux)に、次のような内容の構成ファイルがあることを確認してください。
cluster:
name: elasticsearch_server
network:
host: 66.98.23.12
そして最後に言及する点は、初期化子config / initializers/tire.rbを作成する必要があるということです。
if Rails.env == 'production'
Tire.configure do
url "http://66.98.23.12:9200"
end
end
ご覧のとおり、これはまったく同じIPアドレスですが、実稼働環境でのみ使用されます。ローカルホストを介してローカルで(開発モードで)elasticsearchにアクセスすると仮定します。Elasticsearchはデフォルトで接続されています
http://0.0.0.0:9200
優れた出発点であり、詳細なヘルプも、素晴らしいRyanBatesと彼のRailscastshttp://railscasts.com/episodes?utf8=%E2%9C%93&search=capistranoによって提供されています。