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