2

Elasticsearchを使用してubuntu 12.04リモートサーバーをインストールしました。

私はelasticsearchをインストールしました:

sudo apt-get update
sudo apt-get install openjdk-7-jre-headless -y
wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.20.6.deb
sudo dpkg -i elasticsearch-0.20.6.deb
sudo service elasticsearch start

私は得るsudo elasticsearch status

* ElasticSearch Server is running with pid 2483

私のelasticsearchリモートサーバーは正常に動作しています:

ubuntu12@juan:~/Escritorio/myapp$ curl http:/111.111.111.111:9200
{
  "ok" : true,
  "status" : 200,
  "name" : "Hogan, Harold \"Happy\"",
  "version" : {
    "number" : "0.20.6",
    "snapshot_build" : false
  },
  "tagline" : "You Know, for Search"
}

または私のサブドメインで:

ubuntu12@juan:~/Escritorio/myapp$ curl http://elasticsearchserver.mydomain.com:9200
{
  "ok" : true,
  "status" : 200,
  "name" : "Hogan, Harold \"Happy\"",
  "version" : {
    "number" : "0.20.6",
    "snapshot_build" : false
  },
 "tagline" : "You Know, for Search"
}

ElasticSearhc サーバーを再起動、起動、停止できます。

sudo service elasticsearch restart
 * Stopping ElasticSearch Server                                                                                                                                                                      [ OK ] 
 * Starting ElasticSearch Server                                                                                                                                                                      [ OK ]

次のコードを含むフォルダーにファイルtire.rbがあります。config/initializer/

if Rails.env == 'production'
  Tire.configure do
    url "http://elasticsearchserver.mydomain.com:9200"
  end
end

これは、インデックスを再作成するための私のカピストラーノ タスクです。

after "deploy:finalize_update", "deploy:elasticsearch:index_classes"
namespace :deploy do
  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=Object FORCE=true "
    end
  end
 end

データベースとしてmongodbを使用しているため、インデックスを再作成する前に移行を行っていません。

これはカピストラーノエラーです:

2013-04-06 14:25:50 executing `deploy:elasticsearch:index_classes'
 #
 #
 ** [out :: 111.111.111.111] Skipping index creation, cannot connect to Elasticsearch
 ** [out :: 111.111.111.111] 
 ** [out :: 111.111.111.111] (The original exception was: #<Errno::ECONNREFUSED: Connection refused - connect(2)>)
 ** [out :: 111.111.111.111] 
 ** [out :: 111.111.111.111] [IMPORT] Deleting index 'cvs'
 ** [out :: 111.111.111.111] 
 ** [out :: 111.111.111.111] rake aborted!
 ** [out :: 111.111.111.111] Connection refused - connect(2)
 ** [out :: 111.111.111.111]
 #
 #

本番サーバーに Tire.rb ファイルをアップロードし、次のことを試しました。

bundle exec rake environment tire:import CLASS=Object FORCE=true

同じ結果が得られます。

Skipping index creation, cannot connect to Elasticsearch
(The original exception was: #<Errno::ECONNREFUSED: Connection refused - connect(2)>)
[IMPORT] Deleting index objects'
rake aborted!
Connection refused - connect(2)

私は何を間違っていますか?タイヤ/レールアプリとelasticsearchサーバー間の接続を修正するにはどうすればよいですか?

4

2 に答える 2

4

config/initializers/tire.rb の構文が間違っていると思います。以下を参照してください。

Tire.configure do
  url "http://localhost:9200"
  #you can uncomment the next line if you want to see the elasticsearch queries in their own seperate log
  #logger "#{Rails.root}/log/es.log" 
end
于 2013-04-06T22:44:16.613 に答える