ruby-on-rails - 我们可以在运行时动态更改与Rails App上的Elasticsearch服务器的连接吗

标签 ruby-on-rails elasticsearch

我有2个Elasticsearch服务器。在我的Rails应用程序上,我可以在运行时更改与Elasticsearch服务器的连接吗?
例如,
-如果用户1登录该应用,则它应连接到elasticsearch服务器1
-如果用户2登录该应用,则它应连接到elasticsearch服务器2

谢谢

最佳答案

创建连接时可以使用randomize_hosts

args = {
  hosts: "https://host1.local:9091,https://host2.local:9091",
  adapter: :httpclient,
  logger: (Rails.env.development? || Rails.env.test?) ? Rails.logger : nil,
  reload_on_failure: false,
  randomize_hosts: true,
  request_timeout: 5
}

client = Elasticsearch::Client.new(args)

Randomize hosts doc

Here you can read about与轮循机制不同的主机选择策略。您可以实现自己的想法。

关于ruby-on-rails - 我们可以在运行时动态更改与Rails App上的Elasticsearch服务器的连接吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59154644/

相关文章:

elasticsearch - Elasticsearch 查询字符串到词条查询

javascript - 将单个事件包裹在多个 JS 文件的代码中? [ rails ]

ruby-on-rails - Heroku 数据库在其应用程序被删除后是否存在 - 我可以将其转移到另一个应用程序吗?

ruby-on-rails - Ruby on Rails : one-to-one mapping. 只是语义或实际上是不同的结构

elasticsearch - Elasticsearch所有节点的一个存储

sql - 如何保持SQL数据和Elasticsearch同步以及从中进行搜索?

javascript - 如何在 Rails 3 中每次远程调用后注入(inject)一些 JS 代码

javascript - 在 Rails 中,如何从 JavaScript 查询我的数据库以便我可以填写文本框?

ElasticSearch 不会排序

python - 使用Python测试时如何使Elasticsearch索引为 "blocking"?