gpt4 book ai didi

SOLR 权限/根据访问权限过滤结果

转载 作者:行者123 更新时间:2023-12-03 13:59:33 24 4
gpt4 key购买 nike

例如,我有文档 A、B、C。用户 1 必须只能看到文档 A、B。用户 2 必须只能看到文档 C。是否可以在 SOLR 中执行此操作而无需通过元数据过滤?如果我使用元数据过滤器,每次访问权限发生变化时,我都必须重新索引。

[2012 年 2 月 14 日更新] 不幸的是,在客户的情况下,变化很频繁。数据是 secret 的,通常只由作为内部用户的所有者管理。然后具体情况是他们需要能够将这些文档共享给某些外部用户并为这些用户指定访问级别。而且大多数时候这是一项临时任务,并没有提前确定

最佳答案

我建议将访问角色(是的,它的复数)存储为文档元数据。这里必填字段access_roles是一个可分面的多值字符串字段。

Doc1: access_roles:[user_jane, manager_vienna] // Jane and the Vienna branch manager may see it
Doc2: access_roles:[user_john, manager_vienna, special_team] // Jane, the Vienna branch manager and a member of special team may see it

拥有该文档的用户是 默认 该文档的访问角色。

要更改文档的访问角色,请编辑 access_roles .

当 Jane 搜索时,访问角色 她属于 将成为查询的一部分。 Solr 将仅检索与用户访问角色匹配的文档。

当维也纳办事处 ( user_jane ) 的经理 Jane ( manager_vienna ) 搜索时,她的搜索结果如下:
q=mainquery
&fq=access_roles:user_jane
&fq=access_roles:manager_vienna
&facet=on
&facet.field=access_roles

它获取所有包含 user_jane 的文档 manager_viennaaccess_roles ; Doc1Doc2 .

当 Bob ( user_bob ),一个特别小组 ( specia_team ) 的成员搜索时,
q=mainquery
&fq=access_roles:user_bob
&fq=access_roles:special_team
&facet=on
&facet.field=access_roles

获取 Doc2为了他。

查询改编自 http://wiki.apache.org/solr/SimpleFacetParameters#Multi-Select_Faceting_and_LocalParams

关于SOLR 权限/根据访问权限过滤结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9222835/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com