So I went down the route of creating a new QParser named "fulljoin", and I
have it essentially working.

https://github.com/fullstorydev/lucene-solr/commits/scottb/fulljoin

Basically, I copied JoinQParserPlugin, ripped out the local index "from"
processing, and replaced it with a SolrCloud facet query.  IE, you facet
over the 'from' field and turn the facet result into the set of terms you
care about.

The part I need some help on is that I'm fairly sure the caching (equality)
is wrong.  If the collection gets updated in such a way that the results of
the facet query would change, I don't think I'm properly invalidating the
cache / failing an equality check.

I assume this is what JoinQuery.fromCoreOpenTime does, handle equality
correctly so that if the underlying core is updated, the cache will get
invalidated?  I need to do something similar such that if the results of
the facet query would return a different term list, I can change the
equality computation.  Any advice?

Reply via email to