I'm working on https://issues.apache.org/jira/browse/SOLR-651 and also
trying to write up http://wiki.apache.org/solr/WritingDistributedSearchComponents
Couple of questions on writing distributed SearchComponents
1. Can someone describe the stages (I think I know them, but there
isn't much docs on it)? What if you feel you need a new stage? What
would be the method for adding it? (not saying I need one, but I
wouldn't mind writing it up on the Wiki page above). I think, I would
just need to have my mythical component return a value (in
distributedProcess) that is in between the values of whatever stage I
wish to interject in, right? The stages seem to be very query-centric
(which makes some sense)
2. How does the modifyRequest piece work? I think the idea is that a
component later in the chain can piggyback onto an existing request,
right? So, perhaps in looking at my latest patch for S-651, I really
should just piggyback onto the retrieve docs request, right, that is
likely coming from the QueryComponent anyway?
3. Anyone have suggestions on testing distributed SearchComponents?
Right now, S-651 is just calling the distributeProcess call directly,
but I was wondering whether we want to think about abstracting a test
harness from the TestDistributedSearch class that starts up multiple
Jetty instances. Thoughts?
4. Seems like we should put some effort into making the other
components support distributed operations, right? Is there an
existing issue for this? I see https://issues.apache.org/jira/browse/SOLR-785
. Should we handle it on an ad-hoc basis and just open issues for
each one?
-Grant