1

关于我的应用的一些信息:

  • 导轨
  • 使用公寓 gem 实现多租户
  • 通过 searchkick gem 使用 Elasticsearch

多租户意味着同一模型会有重叠的 ID。

我想到的第一件事是使用 searchkick's index_prefix,通过设置index_prefix不同的租户名称。但我意识到这行不通,因为 的值index_prefix是在应用程序启动时设置的。并且始终保持相同的值。

4

3 回答 3

0

我收到了来自 searchkick 创建者的回复,这是不可能的。

https://github.com/ankane/searchkick/issues/268#issuecomment-53672954

现在我可能会寻找一些猴子修补替代品。

于 2014-08-28T04:58:46.993 回答
0

我们正在做的是向 searchkick 发送一个 index_name 像这样

searchkick autocomplete: ["some_fields_for_auto_complete"],
             index_name: -> { [Apartment::Tenant.current, model_name.plural, Rails.env].join('_') }

这将为不同的租户创建不同的 searchkick 索引,并且在查询期间运行良好。尽管必须重新索引时,请小心为所有租户重新索引模型。

于 2015-04-20T20:28:07.553 回答
0

自 2017-01-16 起,Searchkick 似乎已添加多租户支持。在https://github.com/ankane/searchkick#multi-tenancy查看。

于 2020-02-28T20:32:15.810 回答