You really have two choices: 1> index tokens with each doc of those (usually groups) that are authorized to see them. Then when a user signs on, the front end assembles the list of groups that the user belongs to and appends a filter query to each request like &fq=auth:(group1 group5 group89) This starts to break down if any particular user can belong to many hundreds of groups, although if you construct the fq clause _exactly_ the same way each time, requests 2-n will use the filterCache. The other way this breaks down is if you have to grant individual user/doc rights. The user changing groups isn't really a problem, since the fq clause you assemble will just change. The big downside here is if the doc/group permissions change. Say group1 suddenly gets or loses permissions to docs 1, 4, 90, 108. You must then re-index (or use atomic updates) to update the auth tokens in each of those docs
2> use a "post filter", see: http://heliosearch.org/advanced-filter-caching-in-solr/. The advantage here is that the filter is run _only_ on docs that make it through the original query _and_ all more costly filters. HTH, Erick On Tue, Mar 3, 2015 at 6:32 AM, <johnmu...@aol.com> wrote: > > Hi, > > > I'm indexing data off a DB. The data is secured with access permission. > That is record-A can be seen by users-x, while record-B can be seen by > users-y and yet record-C can be seen by users x and y. Even more, the group > access permission can change over time. > > > The question I have is this: how to handle this in Solr? Is there anything I > can do during index and / or search time? What's the best practice to handle > access permission in search? > > > Thanks! > > > - MJ >