Interesting! I haven't met the appends method before and i'll be sure to give it a try tomorrow. Try, the wiki [1] is not very clear on what it really does.
More suggestions before tomorrow? [1]: http://wiki.apache.org/solr/SolrSecurity#Path_Based_Authentication -----Original message----- From: Jonathan Rochkind <rochk...@jhu.edu> Sent: Wed 08-09-2010 19:19 To: solr-user@lucene.apache.org; markus.jel...@buyways.nl; Subject: Re: Invariants on a specific fq value I just found out about 'invariants', and I found out about another thing too: "appends". (I don't think either of these are actually documented anywhere?). I think maybe "appends" rather than "invariants", with your fq you want always to be there might be exactly what you want? I actually forget whether it's "append" or "appends", and am not sure if it's documented anywhere, try both I guess. But apparently it does exist in 1.4. Jonathan Markus Jelsma wrote: > Hi, > > I have an index with several collections. Every document has a collection > field that specifies the collection it belongs to. To make querying easier > (and restrict exposed parameters) i have a request handler for each > collection. The request handlers are largely the same and preset all > parameters using invariants. > > Well, this is all very nice. But there is a catch, i cannot make an invariant > of the fq parameter because it's being used (from the outside) to navigate > through the facets. This means that the outside world can specify any value > for the fq parameter. > > With the fq parameter being exposed, it is possible for request handler X to > query documents that belong to collection Y and vice versa. But, as you might > guess by now, request handler X should only be allowed to retrieve documents > that belong to collection X. > > I know there are some discussions on how to restrict users to certain > documents but i'd like to know if it is doable to patch the request handler > logic to add an invariant-like directive that allows me to restrict a certain > value for a certain parameter, but allow different values for that parameters. > > To give an example: > > <requestHandler name="collection_x"> > <lst name="invariants"> > <str name="defType">dismax</str> > ... More invariants here > </lst> > > <lst name="what_should_we_call_this?"> > <str name="fq">fieldName:collection_x</str> > </lst> > </requestHandler> > > The above configuration won't allow to change the defType and won't allow a > value to be specified for the <fieldName> through the fq parameter. It will > allow the outside worls to specify a value on another field through the fq > parameter such as : fq:anotherField:someValue. > > Any ideas? > > > Cheers, > > Markus Jelsma - Technisch Architect - Buyways BV > http://www.linkedin.com/in/markus17 > 050-8536620 / 06-50258350 > >