我正在尝试设置elasticsearch,以便用户可以发现文档的存在,而无需访问文档本身。例如,想象一个聚合学术文章的网站:它们允许对正文进行全文搜索,但仅提供摘要。
我正在尝试建立一个系统,其中不同的用户组可以访问不同的文档,但每个人都可以访问整个索引。
在弹性搜索中设置限制内容搜索的阻力最小的路径是什么?这是一个设置吗?一个插件?写我自己的插件?叉?
答案 0 :(得分:2)
要回答查询的第一部分,
第一种方式:您可以通过此方式停用特定查询的返回_source
字段。
{
"_source": false,
"query": {
"term": {
"user": "kimchy"
}
}
}
第二种方式:如果您不想查看_source
字段,则可以禁用存储。
{
"tweet": {
"_source": {
"enabled": false
}
}
}
第二部分,您提到了
我没有完全满足您的要求,但如果您想要简单的身份验证,基于角色的访问控制,那么Shield可能非常有用,因此某些用户无法修改文档等等。
如果您有面向用户的系统,只需在每个文档中添加访问权限字段并将权限映射到用户即可实现。然后,您可以在搜索文档时使用过滤器。如果你没有深入了解Shield的详细信息,那么就是这种情况。