Solr过滤器查询 - 必须具有所有匹配项

时间:2013-10-08 11:09:04

标签: solr

说我在doc中有以下字段:

<str name="groupId">1000 1001 1002</str>

我希望能够将用户所在的groupId列表作为过滤器查询传递,并且只撤出用户拥有的groupIds在文档中全部匹配的文档 - 如果在该文档中存在groupid用户不在的doc然后不返回doc。如果查询中的groupId不在doc中,那么将被忽略 - 用户可以属于比doc更多的组。但是用户必须位于doc指定的所有groupId中,否则他们无权查看它。

这可能吗?

[UPDATE]

我现在添加了我的multiValue字段,如下所示:

<arr name="groupId">
    <str>1000</str>
    <str>1001</str>
    <str>1002</str>
</arr>

如何确保具有用户组1000,1001,1002,1003的用户获得该文档但具有组1000,1002,1003的用户不能获得组1001?

1 个答案:

答案 0 :(得分:0)

是的,你可以这样做。我建议将这些groupId值存储在架构中的multiValued字段中。有关使用多值字段

的一些好的指导,请参阅以下内容

如果您将这些存储在multiValued字段中,您可以按照声明发出过滤查询,只返回所有指定的groupId关联的文档。