I'm new to Solr and I'm looking for a document level security filter solution. Anonymous users searching my application should be able to find public data. Logged in users should be able to find public data and private data they have access to.
Earlier today I wrote about shards as a possible solution. I got a great reply from Shalin Shekhar Mangar of LucidWorks explaining how to achieve something technical but I'd like to back up a minute and consider other solutions. For one thing, I'm concerned about the potential misuse of shards. Judging from this wiki page, shards seem to be used primarily for scalability rather than security (access control): "When an index becomes too large to fit on a single system..." - https://cwiki.apache.org/confluence/display/solr/Distributed+Search+with+Index+Sharding For consistency with longer writeup of mine on this topic[1], I'm going to refer to the sharding solution as Option 4. Here's the full list of options I'm aware of for document level security filtering: 1. Manifold CF (Connector Framework) http://manifoldcf.apache.org 2. ACL PostFilter (ACLs in each document) Specifically, I mean this wonderful writeup by Erik Hatcher from LucidWorks: http://java.dzone.com/articles/custom-security-filtering-solr 3. Pass a (often long) list of IDs in query Representative question: http://lucene.472066.n3.nabble.com/Solr-large-boolean-filter-td4070747.html 4. Sharding (public shard, private shards per user) My post from earlier today: http://lucene.472066.n3.nabble.com/creating-shards-on-the-fly-in-a-single-Solr-instance-quot-shards-quot-query-parameter-td4126909.html I'm happy to hear opinions on any of these solutions or others I haven't even considered! Thanks! Phil 1. My longer writeup of this topic: https://trello.com/c/5z5PpR4r/50-design-solr-document-level-security-filter-solution -- Philip Durbin Software Developer for http://thedata.org http://www.iq.harvard.edu/people/philip-durbin