多个Elasticsearch索引

我在同一个Ubuntu服务器上有一个Rails 3应用程序的暂存和生产实例(使用轮胎gem)。 似乎这两个实例都共享相同的弹性搜索索引,这显然不是我想要的。

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

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

class Article < ActiveRecord::Base include Tire::Model::Search include Tire::Model::Callbacks index_prefix "#{Rails.env}" ... 

然后会创建一个名为development_articlesproduction_articles等的索引。在Tire包含之后, index_prefix很重要。

或者完全重命名索引

 class Article < ActiveRecord::Base include Tire::Model::Search include Tire::Model::Callbacks index_name "My-Development-Article-Index" ...