elasticsearch:允许发现文档,而不暴露源?

时间:2015-01-10 03:37:58

标签: elasticsearch

我正在尝试设置elasticsearch,以便用户可以发现文档的存在,而无需访问文档本身。例如,想象一个聚合学术文章的网站:它们允许对正文进行全文搜索,但仅提供摘要。

我正在尝试建立一个系统,其中不同的用户组可以访问不同的文档,但每个人都可以访问整个索引。

在弹性搜索中设置限制内容搜索的阻力最小的路径是什么?这是一个设置吗?一个插件?写我自己的插件?叉?

1 个答案:

答案 0 :(得分:2)

要回答查询的第一部分

第一种方式:您可以通过此方式停用特定查询的返回_source字段。

{
  "_source": false,
  "query": {
    "term": {
      "user": "kimchy"
    }
  }
} 

第二种方式:如果您不想查看_source字段,则可以禁用存储。

{
  "tweet": {
    "_source": {
      "enabled": false
    }
  }
}

第二部分,您提到了

我没有完全满足您的要求,但如果您想要简单的身份验证,基于角色的访问控制,那么Shield可能非常有用,因此某些用户无法修改文档等等。

如果您有面向用户的系统,只需在每个文档中添加访问权限字段并将权限映射到用户即可实现。然后,您可以在搜索文档时使用过滤器。如果你没有深入了解Shield的详细信息,那么就是这种情况。