elasticsearch:允许发现文档,而不公开源代码?
elasticsearch: allow discovery of document, without exposing source?
我正在尝试设置 elasticsearch,以便它允许用户发现文档的存在,而无需访问文档本身。例如,想象一个聚合学术文章的网站:它们允许对正文进行全文搜索,但只显示摘要。
我正在尝试建立一个系统,让不同的用户组可以访问不同的文档,但每个人都可以访问整个索引。
我在 elasticsearch 上设置受限内容搜索的阻力最小的途径是什么?是设定吗?插件?写我自己的插件?叉子?
要回答您查询的第一部分,
第一种方式:您可以通过此方式禁用特定查询的返回_source
字段。
{
"_source": false,
"query": {
"term": {
"user": "kimchy"
}
}
}
第二种方式:如果您不想看到 _source
字段,可以禁用存储它。
{
"tweet": {
"_source": {
"enabled": false
}
}
}
第二部分,你提到了
我没有完全理解您的要求,但是如果您需要简单的身份验证、基于角色的访问控制(因此某些用户组无法修改文档等),Shield 会很有用。
如果您有面向用户的系统,只需在每个文档中添加访问权限字段并将权限与用户映射即可实现。然后您可以在搜索文档时使用过滤器。如果您不了解 Shield 的详细信息,这是以防万一。
我正在尝试设置 elasticsearch,以便它允许用户发现文档的存在,而无需访问文档本身。例如,想象一个聚合学术文章的网站:它们允许对正文进行全文搜索,但只显示摘要。
我正在尝试建立一个系统,让不同的用户组可以访问不同的文档,但每个人都可以访问整个索引。
我在 elasticsearch 上设置受限内容搜索的阻力最小的途径是什么?是设定吗?插件?写我自己的插件?叉子?
要回答您查询的第一部分,
第一种方式:您可以通过此方式禁用特定查询的返回_source
字段。
{
"_source": false,
"query": {
"term": {
"user": "kimchy"
}
}
}
第二种方式:如果您不想看到 _source
字段,可以禁用存储它。
{
"tweet": {
"_source": {
"enabled": false
}
}
}
第二部分,你提到了
我没有完全理解您的要求,但是如果您需要简单的身份验证、基于角色的访问控制(因此某些用户组无法修改文档等),Shield 会很有用。
如果您有面向用户的系统,只需在每个文档中添加访问权限字段并将权限与用户映射即可实现。然后您可以在搜索文档时使用过滤器。如果您不了解 Shield 的详细信息,这是以防万一。