I'm not totally on top of how distributed components work, but check:
http://wiki.apache.org/solr/WritingDistributedSearchComponents

and:
 https://issues.apache.org/jira/browse/SOLR-680

Do you want each of the shards to append values? or just the final result? If appending the values is not a big resource hog, it may make sense to only do that in the main "process" block. If that is the case, I *think* you just implement: process(ResponseBuilder rb)

ryan


On Oct 4, 2008, at 1:06 PM, Brian Whitman wrote:

Sorry for the extended question, but I am having trouble making
SearchComponent that can actually get at the returned response in a
distributed setup.
In my distributedProcess:

public int distributedProcess(ResponseBuilder rb) throws IOException {

How can I get at the returned results from all shards? I want to get at really the rendered response right before it goes back to the client so I
can add some information based on what came back.

The TermVector example seems to get at rb.resultIds (which is not public and I can't use in my plugin) and then sends a request back to the shards to get the stored fields (using ShardDoc.id, another field I don't have access to.) Instead of doing all of that I'd like to just "peek" into the response that
is about to be written to the client.

I tried getting at rb.rsp but the data is not filled in during the last
stage (GET_FIELDS) that distributedProcess gets called for.



On Sat, Oct 4, 2008 at 10:12 AM, Brian Whitman <[EMAIL PROTECTED]> wrote:

Thanks grant and ryan, so far so good. But I am confused about one thing -
when I set this up like:

 public void process(ResponseBuilder rb) throws IOException {

And put it as the last-component on a distributed search (a defaults shard is defined in the solrconfig for the handler), the component never does its thing. I looked at the TermVectorComponent implementation and it instead
defines

public int distributedProcess(ResponseBuilder rb) throws IOException {

And when I implemented that method it works. Is there a way to define just
one method that will work with both distributed and normal searches?



On Fri, Oct 3, 2008 at 4:41 PM, Grant Ingersoll <[EMAIL PROTECTED]>wrote:

No need to even write a new ReqHandler if you're using 1.3:
http://wiki.apache.org/solr/SearchComponent



Reply via email to