lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Aaron Hiniker <AHini...@shopzilla.com>
Subject Custom SolrQueryRequest/SolrQueryResponse
Date Fri, 30 Apr 2010 23:19:24 GMT
Solr team,

Long time, first time-- many thanks for all your work on creating this excellent search appliance.

The 40,000ft view of my problem is that I need to execute multiple queries per endpoint invocation,
with the results for each query grouped in the response output as such that they were individual
calls (think “composite” request & response) wrapped by a <composite> tag, etc.

So:

Normal Query (single query input):

<results>
....
</results>

Composite Query (multiple query input):

<composite>
   <results>....</results>
   <results>....</results>
  <results>....</results>
<composite>

I’ve already created a custom Handler and Writer for our “single”, non-composite needs,
but now I need to modify the behavior so that if multiple search queries are specified (ie:
 q=query1;query2;query3 etc), the service will invoke and return all 3 result sets in a single
invocation.

Herein lies the problem from what I can tell:  I don’t have any control over SolrQueryRequest
or SolrQueryResponse.  My initial attempts have me subclassing both of these to hold a List
of requests and responses, with a cursor that moves the “current” req/res each time through
my handler.  All methods are implemented to delegate directly to the req/res that the cursor
is pointing to.  I would check, via instanceof, whether we are dealing with a normal or composite
query in the writer to dump the results appropriately.

To pull this off, it appears I would need to modify SolrDispatchFilter to allow for a configurable
factory(?) for my custom SolrQueryRequest and SolrQueryResponse objects.  Can this be solved
some other way without code modifications?  If code modifications are required, do you have
any suggestions on how the configuration file entry might look, etc?  I can write the patch
but wanted to get your feedback before going any further with this.

Thanks

Aaron

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message