/** * @see #useMultiPartPost * @see #_parser */ public CommonsHttpSolrServer(URL baseURL, HttpClient client, ResponseParser parser, boolean useMultiPartPost) { _baseURL = baseURL.toExternalForm(); if( _baseURL.endsWith( "/" ) ) { _baseURL = _baseURL.substring( 0, _baseURL.length()-1 ); } if( _baseURL.indexOf( '?' ) >=0 ) { throw new RuntimeException( "Invalid base url for solrj. The base URL must not contain parameters: "+_baseURL ); } _httpClient = (client == null) ? new HttpClient(new MultiThreadedHttpConnectionManager()) : client; if (client == null) { // set some better defaults if we created a new connection manager and client // increase the default connections this.setDefaultMaxConnectionsPerHost( 32 ); // 2 this.setMaxTotalConnections( 128 ); // 20 } _parser = parser; this.useMultiPartPost = useMultiPartPost; }
/** * Constructor. Prepares solr connection. * * @param url * the connection url to the solr server */ public static SolrServer newRemoteInstance(URL url) { try { CommonsHttpSolrServer server = new CommonsHttpSolrServer(url); server.setSoTimeout(5000); server.setConnectionTimeout(5000); server.setDefaultMaxConnectionsPerHost(100); server.setMaxTotalConnections(100); server.setFollowRedirects(false); // defaults to false server.setAllowCompression(true); server.setMaxRetries(1); // defaults to 0. > 1 not recommended. server.setParser(new XMLResponseParser()); // binary parser is used by default return server; } catch (Exception e) { throw new RuntimeException(e); } }