一尘不染

多个Elasticsearch索引

elasticsearch

我在同一台Ubuntu服务器上有一个Rails 3应用程序的暂存和生产实例(使用tyre
gem)。看来这两个实例都共享相同的elasticsearch索引,这显然不是我想要的。

如何使生产和登台实例使用单独的实例?


阅读 254

收藏
2020-06-22

共1个答案

一尘不染

您需要覆盖索引名称。假设您要绑定ActiveRecord,它将根据相关模型创建索引名称。您可以使用这样的前缀来调整名称;

class Article < ActiveRecord::Base

  include Tire::Model::Search
  include Tire::Model::Callbacks

  index_prefix "#{Rails.env}"

  ...

然后会创建一个名为的索引development_articlesproduction_articles以此类推。重要的index_prefix是Tyre包含在之后。

或者完全重命名索引

class Article < ActiveRecord::Base

  include Tire::Model::Search
  include Tire::Model::Callbacks

  index_name "My-Development-Article-Index"

  ...
2020-06-22