Я установил Elasticsearch внутри докера.Я получил ответ от упругого поиска, как этот -
curl -XGET http://localhost:9200
{
"name" : "NXgYHOl",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "_na_",
"version" : {
"number" : "6.6.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "a9861f4",
"build_date" : "2019-01-24T11:27:09.439740Z",
"build_snapshot" : false,
"lucene_version" : "7.6.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
Затем я настраиваю его в rails
проекте.
Gemfile
gem 'elasticsearch-model'
gem 'elasticsearch-rails'
приложение / модели
require 'elasticsearch/model'
class Movie < ApplicationRecord
include Elasticsearch::Model
include Elasticsearch::Model::Callbacks
end
Movie.import(force: true)
config / initilizers /asticsearch.rb
config = {
host: "http://localhost:9200",
transport_options: {
request: { timeout: 5 }
}
}
if File.exists?("config/elasticsearch.yml")
config.merge!(YAML.load_file("config/elasticsearch.yml")[Rails.env].symbolize_keys)
end
Elasticsearch::Model.client = Elasticsearch::Client.new(config)
config /asticsearch.yml
development: &default
host: 'http://localhost:9200'
transport_options:
request:
timeout: !!integer 300
test:
<<: *default
production:
host: 'http://localhost:9200'
transport_options:
request:
timeout: !!integer 300
Выдает ошибку:
неопределенный метод `params_encoder 'для {" timeout "=> 300,: proxy => nil}: Hash
Я не понимаю эту ошибку.