Class HttpShardHandlerFactory

    • Field Detail

      • defaultClient

        protected volatile org.apache.solr.client.solrj.impl.Http2SolrClient defaultClient
      • loadbalancer

        protected org.apache.solr.client.solrj.impl.LBHttp2SolrClient loadbalancer
    • Constructor Detail

      • HttpShardHandlerFactory

        public HttpShardHandlerFactory()
    • Method Detail

      • init

        public void init​(PluginInfo info)
        Customizes HttpShardHandler instances that will be produced by this factory.

        Supports the following parameters in info:

        • socketTimeout - read timeout for requests, in milliseconds.
        • connTimeout - connection timeout for requests, in milliseconds.
        • urlScheme - "http" or "https"
        • maxConnectionsPerHost - caps the number of concurrent connections per host
        • corePoolSize - the initial size of the thread pool used to service requests
        • maximumPoolSize - the maximum size of the thread pool used to service requests.
        • maxThreadIdleTime - the amount of time (in seconds) that thread pool entries may sit idle before being killed
        • sizeOfQueue - the size of the queue (if any) used by the thread pool that services shard-handler requests
        • fairnessPolicy - true if the thread pool should prioritize fairness over throughput, false otherwise
        • replicaRouting - a NamedList of preferences used to select the order in which replicas for a shard will be used by created ShardHandlers
        Specified by:
        init in interface PluginInfoInitialized
        Parameters:
        info - configuration for the created factory, typically reflecting the contents of a <shardHandlerFactory> XML tag from solr.xml or solrconfig.xml
      • getParameter

        protected <T> T getParameter​(org.apache.solr.common.util.NamedList<?> initArgs,
                                     String configKey,
                                     T defaultValue,
                                     StringBuilder sb)
      • close

        public void close()
        Description copied from interface: SolrMetricProducer
        Implementations should always call SolrMetricProducer.super.close() to ensure that metrics with the same life-cycle as this component are properly unregistered. This prevents obscure memory leaks.

        from: https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html While this interface method is declared to throw Exception, implementers are strongly encouraged to declare concrete implementations of the close method to throw more specific exceptions, or to throw no exception at all if the close operation cannot fail.

        Specified by:
        close in interface AutoCloseable
        Specified by:
        close in interface SolrMetricProducer
        Specified by:
        close in class ShardHandlerFactory
      • newLBHttpSolrClientReq

        protected org.apache.solr.client.solrj.impl.LBSolrClient.Req newLBHttpSolrClientReq​(org.apache.solr.client.solrj.request.QueryRequest req,
                                                                                            List<String> urls)
      • buildURLList

        public List<String> buildURLList​(String shard)
        Creates a list of urls for the given shard.
        Parameters:
        shard - the urls for the shard, separated by '|'
        Returns:
        A list of valid urls (including protocol) that are replicas for the shard
      • getReplicaListTransformer

        protected org.apache.solr.client.solrj.routing.ReplicaListTransformer getReplicaListTransformer​(SolrQueryRequest req)
      • getClient

        public org.apache.solr.client.solrj.SolrClient getClient()