On 12/13/2013 7:40 AM, Karel Vervaeke wrote: > IIUC A Solrj 4.4 client should be able to speak to a Solr 4.6 cloud > instance. > Assuming this is correct there's an issue because of a change in > clusterstate.json: > > In a 4.4 cloud server clusterstate.json would contain `router: "implicit"` > In a 4.6 cloud server clusterstate.json contains `router: > {"name":"implicit"}`. > > Because of this a 4.4 solrj client will look up a router (in > DocRouter.java) using the key `{"name":"implicit"}` instead of just > `implicit`. > Is there a way around this that does not involve upgrading the solrj client?
Although the committers do try really really hard to maintain cross-version compatibility between SolrJ and Solr versions, sometimes changes must be made that break that compatibility, either to support critical new functionality or because of bugs or situations that were not anticipated. SolrCloud technology is relatively new, so things are changing quickly to accommodate new functionality and fix stability problems. SOLR-4221 made this change (released in version 4.5.0) so that more than one property could be assigned to 'router' because more information is sometimes needed. https://issues.apache.org/jira/browse/SOLR-4221 One of the commits made on this issue was to allow a newer SolrJ to talk to an older cluster with the previous clusterstate router format. If for some reason you need to run different SolrJ and Solr versions, it is almost always better to have a newer SolrJ than Sol Thanks, Shawn