使用cancan授权弹性搜索结果

时间:2012-07-22 13:57:09

标签: ruby-on-rails-3 cancan elasticsearch tire

您对如何使用cancan执行弹性搜索结果(使用轮胎)的授权有任何建议吗?

我的方法是让cancan加载并授权模型,并将所有授权的ID传递给轮胎搜索,或者反之亦然。

您怎么看?

1 个答案:

答案 0 :(得分:5)

正确答案需要更多代码才能正确理解您的情况。

但是,通常,作为一个例子:

  1. 您可以为可以直接在文档中访问/操作文档的用户存储用户ID(例如author_ids属性)
  2. 您已将用户ID(基于current_user.id值)传递给term / terms过滤器。
  3. 或者,您可以使用布尔查询,但过滤器会更快,更有效。
  4. 您的搜索结果已被过滤。
  5. 请注意,有更多可能的方法使用elasticsearch和Tire,例如:

    1. 您使用elasticsearch中的“filtered aliases”功能为每个用户设置“虚拟”索引,并在弹性搜索图层上自动过滤。
    2. 您将此索引名称注入到Tire中的搜索。