2

我已經安裝了一個帶有elasticsearch的Ubuntu 12.04遠程服務器。輪胎連接錯誤/ elasticsearch遠程服務器

我已經安裝了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遠程服務器工作正常:

[email protected]:~/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" 
} 

或與我的子域:

[email protected]:~/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 

這是我Capistrano的任務,以重新編制:

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數據庫,所以我沒有在重新索引之前進行遷移。

這是Capistrano的錯誤:

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

我認爲你有語法錯誤在你的配置/初始化/ 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 
+0

我也補充說,它的工作對我罰款''tire.rb文件裏的語法。謝謝 – hyperrjas 2013-04-07 10:05:51

+0

這篇文章的其他讀者只需注意,語法是錯誤的。它應該是網址「http ....」沒有等於。 – simonmorley 2013-08-24 16:47:25

1

這是它的工作對我罰款tire.rb文件

require 'tire' 
Tire.configure { url "http://myremoteserver.com:9200" } 

裏面的語法,現在它的正常工作!

謝謝!