Those of you insomniacs who have read my messages here over the last few weeks might recall that I've been working on a request handler that wraps the SearchHandler to rewrite queries and then reorder results.
(I haven't quite worked out how to apply Grant's alternative suggestions without losing the performance advantages I was looking for in the first place.) Today, I realized that the RequestHandler approach, as opposed to search components, wasn't going to be viable. I was growing too much dependency on internal Solr quirks. So I refactored it into a pair of SearchComponents -- one to go first and rewrite the query, and one to go after "query" and rescore. And it works just fine ----- until I configure it into a SolrCloud cluster. At which point it started coming up with very wrong answers. I think that the reason is that I don't have an implementation of the distributedProcess method, or, more generally, that I don't understand the protocol on a SearchComponent when distributed processing is happening. Has anyone written anything yet about these considerations? I can put multiple processes in the debugging and see who gets called with what, but I was hoping for some sort of short cut.