: fq AND fq AND fq AND (fqu OR fqu OR fqu)
: 
: It would be awesome to have a syntax that creates arbitrarily complex and
: nested AND/OR combinations, but that would be a MAJOR undertaking.  The logic
: I've mentioned above seems to be the most useful you could get with just
: having the one additional parameter.  You can get pure union by just using

the syntax isn't really the hard part.  where things get tricky is in the 
internals of th SolrIndexSearcher and SearchHandler so that you cache 
those "fqu" params independently and then union the results, particularly 
when those fq/fqu params need to be part of the cache key for the 
queryResultCache ... a lot of little changes to the internals.

It's been discussed at a high level a sporadically over the years, but no 
one has had the drive/energy/knowledge to dig into the guts and make it 
work.

Having built several custom faceting components over the years (that apply 
special biz rules) i can tell you that generating DocSets and then 
computing unions/intersections is easy and efficient (the 
SolrIndexSearcher/SolrCache/DocSet APIs are really straight forward), but 
anytime you want to then use that DocSet to constrain a DocList ...  you 
run into complications.


-Hoss

Reply via email to