我有一个group
索引。一个群体有两种隐私类型,公共和私人。私有组与访问代码相关联。在搜索结果中,只有在用户具有与之关联的访问代码时才应包含私有组。以前的私人群组没有显示在搜索结果中,所以我有一个简单的查询!privacy_type:private
。
但是现在如果用户拥有该组的访问代码,我必须包含私人组(用户可以拥有多个访问代码,我们必须包含具有这些访问代码的组)。如何使用这样的条件过滤器?
答案 0 :(得分:2)
只要没有多个组具有相同的access_code
并且它们的行为应该不同(例如,对于access_code
,应返回具有access_code
的所有组:< / p>
fq=privacy_type:public OR access_code:(access_code_1 access_code_2 access_code_3)
您也可以明确告诉Solr OR access_code
列表中的每个语句 - access_code:(access_code_1 OR access_code_2 OR ...)
,但在这种情况下您应该能够删除它。
Solr的默认最大布尔子句数为1000,因此只要每个用户的访问组数量低于此值,这应该可以正常工作。