How about assigning content types to documents in the index, and map users to a set of content types they are allowed to access? That way you will pass in fewer parameters in the fq.
-sujit On Fri, 2011-03-11 at 11:53 +1100, Liam O'Boyle wrote: > Morning, > > We use solr to index a range of content to which, within our application, > access is restricted by a system of user groups and permissions. In order > to ensure that search results don't reveal information about items which the > user doesn't have access to, we need to somehow filter the results; this > needs to be done within Solr itself, rather than after retrieval, so that > the facet and result counts are correct. > > Currently we do this by creating a filter query which specifies all of the > items which may be allowed to match (e.g. id: (foo OR bar OR blarg OR ...)), > but this has definite scalability issues - we're starting to run into > issues, as this can be a set of ORs of potentially unlimited size (and > practically, we're hitting the low thousands sometimes). While we can > adjust maxBooleanClauses upwards, I understand that this has performance > implications... > > So, has anyone had to implement something similar in the past? Any > suggestions for a more scalable approach? Any advice on safe and sensible > limits on how far I can push maxBooleanClauses? > > Thanks for your advice, > > Liam