in src/main/java/org/apache/solr/mcf/ManifoldCFSearchComponent.java [309:325]
protected Query calculateCompleteSubquery(String allowField, String denyField, Query allowOpen, Query denyOpen, List<String> userAccessTokens)
{
BooleanQuery.Builder bq = new BooleanQuery.Builder();
BooleanQuery.setMaxClauseCount(1000000);
// Add the empty-acl case
BooleanQuery.Builder subUnprotectedClause = new BooleanQuery.Builder();
subUnprotectedClause.add(allowOpen,BooleanClause.Occur.MUST);
subUnprotectedClause.add(denyOpen,BooleanClause.Occur.MUST);
bq.add(subUnprotectedClause.build(),BooleanClause.Occur.SHOULD);
for (String accessToken : userAccessTokens)
{
bq.add(new TermQuery(new Term(allowField,accessToken)),BooleanClause.Occur.SHOULD);
bq.add(new TermQuery(new Term(denyField,accessToken)),BooleanClause.Occur.MUST_NOT);
}
return bq.build();
}