Details
-
New Feature
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
None
-
None
-
None
Description
This patch is for contributing a request handler and search component that will allow us to perform multiple queries in one unique request. The issue has been tackled in the past by SOLR-1093 but never integrated into Solr.
Setup
In order to use the request handler the user will have to specify in the solrconfig.xml something like:
<requestHandler name="/multi" class="solr.MultiRequestHandler"/>
Query Syntax
The request handler will support the following syntax:
/select?mq=hello&mq=world&mq=solr&rows=2&fq=...
the response will be:
{ "responseHeader": { "status": 0, "QTime": 58 }, "response": [ { "numFound": 10, "start": 0, "mq": "hello", "docs": [ { ... }, { "numFound": 57, "start": 0, "mq": "world", "docs": [ ... ] { "numFound": 34, "start": 0, "mq": "solr", "docs": [ ... ], }
Performance
The query will be optimized for the distributed setting, so that the network requests between the federator and the shards are the same used to perform a normal query.
We also plan to support group queries (extending the QueryComponent in order to avoid extra network communications)
Misc
The usual parameters (rows, start, fq, sort) will be in common and applied to all the queries.
We would like to release the request handler in a separate contrib package.