我在 Rails 5.2.2 中使用 searchkick
gem 并尝试通过 rails 控制台索引用户模型。 User.reindex 返回此错误:
这是我的 config/initializers/searchkick.rb
初始化文件:
url = begin
ENV['ELASTICSEARCH_URL']
rescue StandardError
"localhost"
end
Searchkick.client = Elasticsearch::Client.new(
hosts: ["http://#{url}"],
retry_on_failure: true,
transport_options: {
request: {
timeout: 450
}
}
)
curl -XGET "localhost:9200"的输出
"name" : "RZdkAgz",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "PG5iZcMnQB677DBW2jStuA",
"version" : {
"number" : "6.7.0",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "8453f77",
"build_date" : "2019-03-21T15:32:29.844721Z",
"build_snapshot" : false,
"lucene_version" : "7.7.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
curl -XGET "localhost:9200/_cluster/health?pretty"的输出
"cluster_name" : "elasticsearch",
"status" : "yellow",
"timed_out" : false,
"number_of_nodes" : 1,
"number_of_data_nodes" : 1,
"active_primary_shards" : 0,
"active_shards" : 0,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 20,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 0.0
}
最佳答案
一个原因可能是,该节点刚刚加入集群,但尚未分配任何分片。有关更多信息,请参阅此帖子:Unassigned Shards
关于ruby-on-rails - 为什么会出现 Searchkick::ImportError - "type"= >"unavailable_shards_exception", "reason"=> "Primary Shard is not active"?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58910022/