title: What's the difference: ConcurrentUpdateSolrServer vs HttpSolrServer vs CommonsHttpSolrServer?
body: <p>What are the differences between the following implementations of <a href="http://lucene.apache.org/solr/4_6_0/solr-solrj/org/apache/solr/client/solrj/SolrServer.html" rel="nofollow">SolrServer</a>: </p>
  
  <ol>
  <li><code>ConcurrentUpdateSolrServer</code></li>
  <li><code>HttpSolrServer</code></li>
  <li><code>CommonsHttpSolrServer</code> (Note: Is this now deprecated?)</li>
  </ol>
  
  <p>As mentioned in the <a href="http://lucene.apache.org/solr/4_2_1/solr-solrj/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrServer.html" rel="nofollow">documentation</a>:</p>
  
  <blockquote>
    <p>It is only recommended to use ConcurrentUpdateSolrServer with /update requests. The class HttpSolrServer is better suited for the query interface.</p>
  </blockquote>
  
  <p>The documentation for ConcurrentUpdateSolrServer suggests using it for updates and HttpSolrServer for queries. Why is this? </p>
  
  <p>At the moment I am using <code>HttpSolrServer</code> for everything, will using <code>ConcurrentUpdateSolrServer</code> for updates result in significant performance improvements?</p>