I have a requirement to find items in a Lucene index that have two basic criterion: 1. match a specific string called a 'relation' 2. fall within a list of entitlement 'grant groups'
An entitlement group defines a subset of items accessible by a member of that group and is much like an authorization role.
All documents in the Lucene index have the 'relation' field and, for simplicity sake, one or more 'grant-group' fields.
So, for example, a user may search for 'foobar' and that user may be a member of groups a, b, c. foobar, let's say, has grant groups a,p,q,s
The query will be, basically, "match 'foobar' AND (a OR b OR c).
This should work according to Lucene documentation.
My question is this: How far can you go with the 2nd part of the boolean query, namely, the part after 'AND' ? The reason for asking is this: I am about to do a small feasibility study and part of the requirements is the need to support potentially MANY groups in the 'OR' clause. Possibly up to 200 or 300 groups.
Would there be noticeable performance degradation ?
thanks.