kof*_*rts 1 ruby-on-rails elasticsearch searchkick cloud9
我已经在cloud9的端口8081上运行elasticsearch。
/workspace/elasticsearch-6.1.1/bin $ ./elasticsearch -E http.port=8081
Run Code Online (Sandbox Code Playgroud)
然后我在 gemfile 中添加“searchkick”gem,然后捆绑安装
然后我在模型中添加 searchkick 作为
class Book < ActiveRecord::Base
searchkick
end
Run Code Online (Sandbox Code Playgroud)
然后我运行命令
Book.reindex
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
2.3.4 :001 > Book.reindex
Faraday::ConnectionFailed: Failed to open TCP connection to localhost:9200 (Connection refused - connect(2) for "localhost" port 9200)
from /usr/local/rvm/rubies/ruby-2.3.4/lib/ruby/2.3.0/net/http.rb:882:in `rescue in block in connect'
from /usr/local/rvm/rubies/ruby-2.3.4/lib/ruby/2.3.0/net/http.rb:879:in `block in connect'
from /usr/local/rvm/rubies/ruby-2.3.4/lib/ruby/2.3.0/timeout.rb:91:in `block in timeout'
from /usr/local/rvm/rubies/ruby-2.3.4/lib/ruby/2.3.0/timeout.rb:101:in `timeout'
from /usr/local/rvm/rubies/ruby-2.3.4/lib/ruby/2.3.0/net/http.rb:878:in `connect'
from /usr/local/rvm/rubies/ruby-2.3.4/lib/ruby/2.3.0/net/http.rb:863:in `do_start'
from /usr/local/rvm/rubies/ruby-2.3.4/lib/ruby/2.3.0/net/http.rb:852:in `start'
Run Code Online (Sandbox Code Playgroud)
这是有道理的,因为它假设弹性搜索服务器在默认的 9200 上运行,但我在 8081 上运行它。我如何告诉 searchkick gem 连接到 8081 端口而不是 9200?我很感激任何帮助!谢谢!
创建一个初始化程序config/initializers/elasticsearch.rb:
ENV['ELASTICSEARCH_URL'] = 'http://localhost:8081'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
872 次 |
| 最近记录: |