Also since DocValues seems to be the future of faceting, is there another mechanism that I should be looking at to do authorization based filtering like this? I know that I can do this filtering at a document level and get the desired result, but am wondering about at the Term level. As always thanks.
On Sat, Aug 29, 2015 at 8:26 AM, Jamie Johnson <jej2...@gmail.com> wrote: > This sounds like a good idea, I'm assuming I'd need to make my own > UnInvertingReader (or subclass) to do this right? Is there a way to do > this on the 5.x codebase or would I still need the solrindexer factory work > that Tomás mentioned previously? > > Tomás, is there a ticket for the SolrIndexer factory? I'd like to follow > it's work to know what version of 5.x (or later) I should be looking for > this in. > > On Thu, Aug 27, 2015 at 1:06 PM, Yonik Seeley <ysee...@gmail.com> wrote: > >> UnInvertingReader makes indexed fields look like docvalues fields. >> The caching itself is still done in FieldCache/FieldCacheImpl >> but you could perhaps wrap what is cached there to either screen out >> stuff or construct a new entry based on the user. >> >> -Yonik >> >> >> On Thu, Aug 27, 2015 at 12:55 PM, Jamie Johnson <jej2...@gmail.com> >> wrote: >> > I think a custom UnInvertingReader would work as I could skip the >> process >> > of putting things in the cache. Right now in Solr 4.x though I am >> caching >> > based but including the users authorities in the key of the cache so >> we're >> > not rebuilding the UnivertedField on every request. Where in 5.x is the >> > object actually cached? Will this be possible in 5.x? >> > >> > On Thu, Aug 27, 2015 at 12:32 PM, Yonik Seeley <ysee...@gmail.com> >> wrote: >> > >> >> The FieldCache has become implementation rather than interface, so I >> >> don't think you're going to see plugins at that level (it's all >> >> package protected now). >> >> >> >> One could either subclass or re-implement UnInvertingReader though. >> >> >> >> -Yonik >> >> >> >> >> >> On Thu, Aug 27, 2015 at 12:09 PM, Jamie Johnson <jej2...@gmail.com> >> wrote: >> >> > Also in this vein I think that Lucene should support factories for >> the >> >> > cache creation as described @ >> >> > https://issues.apache.org/jira/browse/LUCENE-2394. I'm not >> endorsing >> >> the >> >> > patch that is provided (I haven't even looked at it) just the >> concept in >> >> > general. >> >> > >> >> > On Thu, Aug 27, 2015 at 12:01 PM, Jamie Johnson <jej2...@gmail.com> >> >> wrote: >> >> > >> >> >> That makes sense, then I could extend the SolrIndexSearcher by >> creating >> >> a >> >> >> different factory class that did whatever magic I needed. If you >> >> create a >> >> >> Jira ticket for this please link it here so I can track it! Again >> >> thanks >> >> >> >> >> >> On Thu, Aug 27, 2015 at 11:59 AM, Tomás Fernández Löbbe < >> >> >> tomasflo...@gmail.com> wrote: >> >> >> >> >> >>> I don't think there is a way to do this now. Maybe we should >> separate >> >> the >> >> >>> logic of creating the SolrIndexSearcher to a factory. Moving this >> logic >> >> >>> away from SolrCore is already a win, plus it will make it easier to >> >> unit >> >> >>> test and extend for advanced use cases. >> >> >>> >> >> >>> Tomás >> >> >>> >> >> >>> On Wed, Aug 26, 2015 at 8:10 PM, Jamie Johnson <jej2...@gmail.com> >> >> wrote: >> >> >>> >> >> >>> > Sorry to poke this again but I'm not following the last comment >> of >> >> how I >> >> >>> > could go about extending the solr index searcher and have the >> >> extension >> >> >>> > used. Is there an example of this? Again thanks >> >> >>> > >> >> >>> > Jamie >> >> >>> > On Aug 25, 2015 7:18 AM, "Jamie Johnson" <jej2...@gmail.com> >> wrote: >> >> >>> > >> >> >>> > > I had seen this as well, if I over wrote this by extending >> >> >>> > > SolrIndexSearcher how do I have my extension used? I didn't >> see a >> >> way >> >> >>> > that >> >> >>> > > could be plugged in. >> >> >>> > > On Aug 25, 2015 7:15 AM, "Mikhail Khludnev" < >> >> >>> mkhlud...@griddynamics.com> >> >> >>> > > wrote: >> >> >>> > > >> >> >>> > >> On Tue, Aug 25, 2015 at 2:03 PM, Jamie Johnson < >> jej2...@gmail.com >> >> > >> >> >>> > wrote: >> >> >>> > >> >> >> >>> > >> > Thanks Mikhail. If I'm reading the SimpleFacets class >> >> correctly, >> >> >>> out >> >> >>> > >> > delegates to DocValuesFacets when facet method is FC, what >> used >> >> to >> >> >>> be >> >> >>> > >> > FieldCache I believe. DocValuesFacets either uses >> DocValues or >> >> >>> builds >> >> >>> > >> then >> >> >>> > >> > using the UninvertingReader. >> >> >>> > >> > >> >> >>> > >> >> >> >>> > >> Ah.. got it. Thanks for reminding this details.It seems like >> even >> >> >>> > >> docValues=true doesn't help with your custom implementation. >> >> >>> > >> >> >> >>> > >> >> >> >>> > >> > >> >> >>> > >> > I am not seeing a clean extension point to add a custom >> >> >>> > >> UninvertingReader >> >> >>> > >> > to Solr, would the only way be to copy the FacetComponent >> and >> >> >>> > >> SimpleFacets >> >> >>> > >> > and modify as needed? >> >> >>> > >> > >> >> >>> > >> Sadly, yes. There is no proper extension point. Also, consider >> >> >>> > overriding >> >> >>> > >> SolrIndexSearcher.wrapReader(SolrCore, DirectoryReader) where >> the >> >> >>> > >> particular UninvertingReader is created, there you can pass >> the >> >> own >> >> >>> one, >> >> >>> > >> which refers to custom FieldCache. >> >> >>> > >> >> >> >>> > >> >> >> >>> > >> > On Aug 25, 2015 12:42 AM, "Mikhail Khludnev" < >> >> >>> > >> mkhlud...@griddynamics.com> >> >> >>> > >> > wrote: >> >> >>> > >> > >> >> >>> > >> > > Hello Jamie, >> >> >>> > >> > > I don't understand how it could choose DocValuesFacets (it >> >> >>> occurs on >> >> >>> > >> > > docValues=true) field, but then switches to >> >> >>> > >> UninvertingReader/FieldCache >> >> >>> > >> > > which means docValues=false. If you can provide more >> details >> >> it >> >> >>> > would >> >> >>> > >> be >> >> >>> > >> > > great. >> >> >>> > >> > > Beside of that, I suppose you can only implement and >> inject >> >> your >> >> >>> own >> >> >>> > >> > > UninvertingReader, I don't think there is an extension >> point >> >> for >> >> >>> > this. >> >> >>> > >> > It's >> >> >>> > >> > > too specific requirement. >> >> >>> > >> > > >> >> >>> > >> > > On Tue, Aug 25, 2015 at 3:50 AM, Jamie Johnson < >> >> >>> jej2...@gmail.com> >> >> >>> > >> > wrote: >> >> >>> > >> > > >> >> >>> > >> > > > as mentioned in a previous email I have a need to >> provide >> >> >>> security >> >> >>> > >> > > controls >> >> >>> > >> > > > at the term level. I know that Lucene/Solr doesn't >> support >> >> >>> this >> >> >>> > so >> >> >>> > >> I >> >> >>> > >> > had >> >> >>> > >> > > > baked something onto a 4.x baseline that was sufficient >> for >> >> my >> >> >>> use >> >> >>> > >> > cases. >> >> >>> > >> > > > I am now looking to move that implementation to 5.x and >> am >> >> >>> running >> >> >>> > >> into >> >> >>> > >> > > an >> >> >>> > >> > > > issue around faceting. Previously we were able to >> provide a >> >> >>> > custom >> >> >>> > >> > cache >> >> >>> > >> > > > implementation that would create separate cache entries >> >> given a >> >> >>> > >> > > particular >> >> >>> > >> > > > set of security controls, but in Solr 5 some faceting is >> >> >>> delegated >> >> >>> > >> to >> >> >>> > >> > > > DocValuesFacets which delegates to UninvertingReader in >> my >> >> case >> >> >>> > (we >> >> >>> > >> are >> >> >>> > >> > > not >> >> >>> > >> > > > storing DocValues). The issue I am running into is that >> >> before >> >> >>> > 5.x >> >> >>> > >> I >> >> >>> > >> > had >> >> >>> > >> > > > the ability to influence the FieldCache that was used >> at the >> >> >>> Solr >> >> >>> > >> level >> >> >>> > >> > > to >> >> >>> > >> > > > also include a security token into the key so each cache >> >> entry >> >> >>> was >> >> >>> > >> > scoped >> >> >>> > >> > > > to a particular level. With the current implementation >> the >> >> >>> > >> FieldCache >> >> >>> > >> > > > seems to be an internal detail that I can't influence in >> >> >>> anyway. >> >> >>> > Is >> >> >>> > >> > this >> >> >>> > >> > > > correct? I had noticed this Jira ticket >> >> >>> > >> > > > https://issues.apache.org/jira/browse/LUCENE-5427, is >> there >> >> >>> any >> >> >>> > >> > movement >> >> >>> > >> > > > on >> >> >>> > >> > > > this? Is there another way to influence the information >> >> that >> >> >>> is >> >> >>> > put >> >> >>> > >> > into >> >> >>> > >> > > > these caches? As always thanks in advance for any >> >> suggestions. >> >> >>> > >> > > > >> >> >>> > >> > > > -Jamie >> >> >>> > >> > > > >> >> >>> > >> > > >> >> >>> > >> > > >> >> >>> > >> > > >> >> >>> > >> > > -- >> >> >>> > >> > > Sincerely yours >> >> >>> > >> > > Mikhail Khludnev >> >> >>> > >> > > Principal Engineer, >> >> >>> > >> > > Grid Dynamics >> >> >>> > >> > > >> >> >>> > >> > > <http://www.griddynamics.com> >> >> >>> > >> > > <mkhlud...@griddynamics.com> >> >> >>> > >> > > >> >> >>> > >> > >> >> >>> > >> >> >> >>> > >> >> >> >>> > >> >> >> >>> > >> -- >> >> >>> > >> Sincerely yours >> >> >>> > >> Mikhail Khludnev >> >> >>> > >> Principal Engineer, >> >> >>> > >> Grid Dynamics >> >> >>> > >> >> >> >>> > >> <http://www.griddynamics.com> >> >> >>> > >> <mkhlud...@griddynamics.com> >> >> >>> > >> >> >> >>> > > >> >> >>> > >> >> >>> >> >> >> >> >> >> >> >> >> > >