我在同一台Ubuntu服务器上有一个Rails 3应用程序的暂存和生产实例(使用tyre gem)。看来这两个实例都共享相同的elasticsearch索引,这显然不是我想要的。
如何使生产和登台实例使用单独的实例?
您需要覆盖索引名称。假设您要绑定ActiveRecord,它将根据相关模型创建索引名称。您可以使用这样的前缀来调整名称;
class Article < ActiveRecord::Base include Tire::Model::Search include Tire::Model::Callbacks index_prefix "#{Rails.env}" ...
然后会创建一个名为的索引development_articles,production_articles以此类推。重要的index_prefix是Tyre包含在之后。
development_articles
production_articles
index_prefix
或者完全重命名索引
class Article < ActiveRecord::Base include Tire::Model::Search include Tire::Model::Callbacks index_name "My-Development-Article-Index" ...