【发布时间】:2012-07-09 10:00:57
【问题描述】:
我在同一个 Ubuntu 服务器上有一个 Rails 3 应用程序的暂存和生产实例(使用轮胎 gem)。看来这两个实例都共享相同的弹性搜索索引,这显然不是我想要的。
如何让我的生产实例和暂存实例使用不同的实例?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 elasticsearch tire
我在同一个 Ubuntu 服务器上有一个 Rails 3 应用程序的暂存和生产实例(使用轮胎 gem)。看来这两个实例都共享相同的弹性搜索索引,这显然不是我想要的。
如何让我的生产实例和暂存实例使用不同的实例?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 elasticsearch tire
您需要覆盖索引名称。假设您正在绑定 ActiveRecord,它将根据相关模型创建一个索引名称。您可以使用这样的前缀调整名称;
class Article < ActiveRecord::Base
include Tire::Model::Search
include Tire::Model::Callbacks
index_prefix "#{Rails.env}"
...
然后将创建一个名为development_articles、production_articles 等的索引。重要的是index_prefix 出现在轮胎包含之后。
或者完全重命名索引
class Article < ActiveRecord::Base
include Tire::Model::Search
include Tire::Model::Callbacks
index_name "My-Development-Article-Index"
...
【讨论】: