Hi all

We have a cluster of standalone Solr cores (Solr 4.3) for which we had
built  some custom requesthandlers and filters which do query processing
using the Terms API. I'm now trying to port the custom functionality to
work in the Solr Cloud world.

Old configuration had standalone cores with the requesthandler embedded
into each:

core1

-> requesthandler plugin

core2

-> requesthandler plugin

We built an exernal (non-Solr) component that sent every query request to
each core and aggregrated the results. When processing the request, within
each request handler, it obtained a index searcher by doing

SolrIndexSearcher searcher = solrQueryRequest.getSearcher();

followed by

searcher.search()...

Request1: http://localhost:xxx/solr/core1/plugin?q=blahblah

Request2: http://localhost:xxx/solr/core2/plugin?q=blahblah


In the SolrCloud version, I expected things to work similarly but at the
collection level.

New configuration:

SolrCloud collection with plugin

-> shard1

-> shard2

So my expectation is when I invoke

SolrIndexSearcher searcher = solrQueryRequest.getSearcher() ...


I obtain a searcher which can search against the collection i.e against all
the shards. But this doesn't seem to happen. It seems that the searcher is
executing the query only against shard1 !

Note: I peeked into the SolrQueryRequest object using a debugger and it has
a reference to a SolrCore object which just points to shard1.

Request: http://localhost:xxx/solr/collection1/plugin?q=blahblah

Am I doing something wrong? Is my expectation of how it should work flawed?

Any help would be appreciated.

Regards

CV

Reply via email to