【问题标题】:Restrict a user to a set of documents in elasticsearch将用户限制为弹性搜索中的一组文档
【发布时间】:2016-02-21 13:32:28
【问题描述】:

我有一个包含许多文档的索引。在我的应用程序中,登录发生在用户名下。对于一个用户,只有一组数据应该是可见的,也就是说,我想将每个用户限制在一组文档中。有人可以提供如何使用弹性搜索来实现这一点的解决方案吗?

假设我的索引包含以下文档 记录1 记录2 记录3 记录4 我说 2 个用户,user1 和 user2 当 user1 登录时,他应该可以访问“record1”、“record2”和“record3”。对于 user2 ,只能访问“record4”。

【问题讨论】:

  • 您应该查看Shield,它应该提供了满足您的要求所需的几乎所有内容。

标签: elasticsearch


【解决方案1】:

也许您可以在索引中再添加一列,您可以在其中保留预期用户的记录,并且在查询索引时,您可以检查登录用户是否在列中指定的用户中。

【讨论】:

    【解决方案2】:

    我建议您使用index aliases。 索引别名可以为它们添加过滤器。

    所以创建 2 个别名,每个用户一个。

    现在为每个别名创建一个过滤器,将用户限制在他自己的一组文档中。 (只需使用文档 ID 搜索)

    通过代理限制这些用户只能使用这些别名。 这应该可以解决问题

    【讨论】:

      猜你喜欢
      • 2013-01-02
      • 1970-01-01
      • 2021-06-20
      • 2020-01-18
      • 2016-07-27
      • 2015-06-01
      • 2015-12-18
      • 2016-12-24
      • 1970-01-01
      相关资源
      最近更新 更多