[ 
https://issues.apache.org/jira/browse/SOLR-2026?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12895340#action_12895340
 ] 

Karl Wright edited comment on SOLR-2026 at 8/4/10 9:28 PM:
-----------------------------------------------------------

Here's an example of the solrconfig.xml using the attached patch:

  <requestHandler name="/querytest" class="solr.SearchHandler" lazy="true">

    <arr name="queries">
      <lst name="query1">
          <!-- the first query's configuration -->
          <arr name="components">
            <str>query</str>
          </arr>
      </lst>
      <lst name="query2">
          <!-- the second query's configuration -->
          <arr name="components">
            <str>query</str>
          </arr>
      </lst>
    </arr>

    <!-- Note well: the final query of the sequence is specified at this root 
level.  In this case, the default components are all chosen.
          Thus, this example represents three Lucene queries performed in 
sequence.  -->

  </requestHandler>


Note also that the ResponseBuilder object from the previous Lucene query is 
made available in the next Lucene query's request context.  Use 
SolrRequestObject.getContext().get("previousresponse") to grab it.


      was (Author: [email protected]):
    Here's an example of the solrconfig.xml using the attached patch:

  <requestHandler name="/querytest" class="solr.SearchHandler" lazy="true">

    <arr name="queries">
      <lst name="query1">
          <!-- the first query's configuration -->
          <arr name="components">
            <str>query</str>
          </arr>
      </lst>
      <lst name="query2">
          <!-- the second query's configuration -->
          <arr name="components">
            <str>query</str>
          </arr>
      </lst>
    </arr>

    <!-- Note well: the final query of the sequence is specified at this root 
level.  In this case, the default components are all chosen.
          Thus, this example represents three queries performed in sequence.  
-->

  </requestHandler>


Note also that the ResponseBuilder object from the previous query is made 
available in the next query's request context.  Use 
SolrRequestObject.getContext().get("previousresponse") to grab it.

  
> Need infrastructure support in Solr for requests that perform multiple 
> sequential queries
> -----------------------------------------------------------------------------------------
>
>                 Key: SOLR-2026
>                 URL: https://issues.apache.org/jira/browse/SOLR-2026
>             Project: Solr
>          Issue Type: Improvement
>          Components: SearchComponents - other
>            Reporter: Karl Wright
>         Attachments: SOLR-2026.patch
>
>
> Several known cases exist where multiple index searches need to be performed 
> in order to arrive at the final result.  Typically, these have the constraint 
> that the results from one search query are required in order to form a 
> subsequent search query.  While it is possible to write a custom 
> QueryComponent or search handler to perform this task, an extension to the 
> SearchHandler base class would readily permit such query sequences to be 
> configured using solrconfig.xml.
> I will be therefore writing and attaching a patch tomorrow morning which 
> supports this extended functionality in a backwards-compatible manner.  The 
> tricky part, which is figuring out how to funnel the output of the previous 
> search result into the next query, can be readily achieved by use of the 
> SolrRequestObject.getContext() functionality.  The stipulation will therefore 
> be that the SolrRequestObject's lifetime will be that of the entire request, 
> which makes complete sense.  (The SolrResponseObject's lifetime will, on the 
> other hand, be limited to a single query, and the last response so formed 
> will be what gets actually returned by SearchHandler.)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to