docs: private ShardInformation createShardInformation(String shard) {
      ShardInformation shardInformation = new ShardInformation(shard);
      ModifiableSolrParams solrParams = new ModifiableSolrParams();
      solrParams.add(CommonParams.Q, "*:*");
      solrParams.add(CommonParams.ROWS, "0");
      solrParams.add(CommonParams.HEADER_ECHO_PARAMS, "none");
      solrParams.add(ShardParams.IS_SHARD, CommonParams.TRUE);
      solrParams.add(MtasSolrSearchComponent.PARAM_MTAS, CommonParams.TRUE);
      solrParams.add(MtasSolrComponentStatus.PARAM_MTAS_STATUS, CommonParams.TRUE);
      solrParams.add(
          MtasSolrComponentStatus.PARAM_MTAS_STATUS + "." + MtasSolrComponentStatus.NAME_MTAS_STATUS_MTASHANDLER,
          CommonParams.TRUE);
      solrParams.add(
          MtasSolrComponentStatus.PARAM_MTAS_STATUS + "." + MtasSolrComponentStatus.NAME_MTAS_STATUS_NUMBEROFSEGMENTS,
          CommonParams.TRUE);
      solrParams.add(
          MtasSolrComponentStatus.PARAM_MTAS_STATUS + "." + MtasSolrComponentStatus.NAME_MTAS_STATUS_NUMBEROFDOCUMENTS,
          CommonParams.TRUE);
      SolrClient solrClient = new HttpSolrClient.Builder(shard).build();
      try {  
        QueryResponse response = solrClient.query(solrParams);
        Object mtasHandlerObject = Objects.requireNonNull(
            response.getResponse().findRecursive(MtasSolrSearchComponent.NAME, MtasSolrComponentStatus.NAME,
                MtasSolrComponentStatus.NAME_MTAS_STATUS_MTASHANDLER),
            "no number of segments for " + shard);
        Object numberOfSegmentsObject = Objects.requireNonNull(
            response.getResponse().findRecursive(MtasSolrSearchComponent.NAME, MtasSolrComponentStatus.NAME,
                MtasSolrComponentStatus.NAME_MTAS_STATUS_NUMBEROFSEGMENTS),
            "no number of documents for " + shard);
        Object numberOfDocumentsObject = Objects.requireNonNull(
            response.getResponse().findRecursive(MtasSolrSearchComponent.NAME, MtasSolrComponentStatus.NAME,
                MtasSolrComponentStatus.NAME_MTAS_STATUS_NUMBEROFDOCUMENTS),
            "no name for " + shard);
        Object nameObject = Objects.requireNonNull(response.getResponse().findRecursive(MtasSolrSearchComponent.NAME,
            MtasSolrComponentStatus.NAME, ShardInformation.NAME_NAME), "no handler for " + shard);
        if (mtasHandlerObject instanceof String) {
          shardInformation.mtasHandler = (String) mtasHandlerObject;
        }
        if (numberOfSegmentsObject instanceof Integer) {
          shardInformation.numberOfSegments = (Integer) numberOfSegmentsObject;
        }
        if (numberOfDocumentsObject instanceof Integer) {
          shardInformation.numberOfDocuments = ((Integer) numberOfDocumentsObject).longValue();
        }
        if (nameObject instanceof String) {
          shardInformation.name = (String) nameObject;
        }
        shardIndex.put(shard, shardInformation);
      } catch (NullPointerException | SolrServerException | IOException e) {
        log.error(e);
        return null;
      } finally {
        if (solrClient != null) {
          try {
            solrClient.close();
          } catch (IOException e) {
            log.error(e);
          }
        }
      }
      return shardInformation;
    }