基于条件

时间:2018-05-30 07:34:46

标签: solr solarium

我有一个group索引。一个群体有两种隐私类型,公共和私人。私有组与访问代码相关联。在搜索结果中,只有在用户具有与之关联的访问代码时才应包含私有组。以前的私人群组没有显示在搜索结果中,所以我有一个简单的查询!privacy_type:private

但是现在如果用户拥有该组的访问代码,我必须包含私人组(用户可以拥有多个访问代码,我们必须包含具有这些访问代码的组)。如何使用这样的条件过滤器?

1 个答案:

答案 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,因此只要每个用户的访问组数量低于此值,这应该可以正常工作。