Hi, I am trying to migrate to Solr 4 (from 3.6) for a multithreaded/multicollection environment using the Solrj java client. I need some clarification of when to use the Cloud Solr Server vs LBHttpSolrServer. Any help is appreciated.
Which one do I use? The CloudSolrServer uses the LB server internally so should this be the one for both searching and indexing? The documentation says the LB server must not be used for indexing. As the CloudSolrServer uses the LB server internally, so I guess we should not use it for indexing. Is this correct? So if the ConcurrentUpdateSolrServer is used for indexing, how do I load balance that? Reusing: Should I create multiple Cloud Solr Servers, one for each collection? Simply put, what is the best practice for reusing a server in a multithreaded/multicollection scenario and what server do I use for indexing and querying? The CloudSolrServer instantiates a new LB server per request. Isn't that expensive? On Solr 3.6, I used the ConcurrentUpdateSolrServer for indexing and the HttpSolrServer for searching. In each case, I had a new server per core and reused (I used a MAP with the corename as key and the server as the value). So for 5 cores, I had 5 servers identified by the core and re-used. I did this as I understood instantiating a new server for every request was expensive Thanks Jay