Package org.apache.solr.client.solrj.io.stream

## Class StatsStream

- java.lang.Object
- - org.apache.solr.client.solrj.io.stream.TupleStream
  - - org.apache.solr.client.solrj.io.stream.StatsStream

All Implemented Interfaces:
  `Closeable`, `Serializable`, `AutoCloseable`, `Expressible`, `ParallelMetricsRollup`, `MapSerializable`, `MapWriter`, `NavigableObject`

    public class StatsStream
    extends TupleStream
    implements Expressible, ParallelMetricsRollup

Since:
  6.6.0
See Also:
  Serialized Form

### Nested Class Summary

### Nested classes/interfaces inherited from class org.apache.solr.client.solrj.io.stream.TupleStream

`TupleStream.IgnoreException`

### Nested classes/interfaces inherited from interface org.apache.solr.common.MapWriter

`MapWriter.EntryWriter`

### Field Summary

Fields
`protected SolrClientCache` `cache`
`protected CloudSolrClient` `cloudSolrClient`
`protected TupleStream` `parallelizedStream`

### Constructor Summary

Constructors
`StatsStream​(String zkHost, String collection, SolrParams params, Metric[] metrics)`
`StatsStream​(StreamExpression expression, StreamFactory factory)`

### Method Summary

All Methods Instance Methods Concrete Methods
`List<TupleStream>` `children()`
`void` `close()`
`String` `getCollection()`
`int` `getCost()`
`protected Map<String,​String>` `getRollupSelectFields​(Metric[] rollupMetrics)`
`TupleStream` `getSortedRollupStream​(ParallelListStream plist, Metric[] rollupMetrics)` Get the rollup for the parallelized streams that is sorted based on the original (non-parallel) sort order.
`StreamComparator` `getStreamSort()`
`void` `open()`
`TupleStream[]` `parallelize​(List<String> partitions)` Given a list of collections, return an array of TupleStream for each partition.
`Tuple` `read()`
`void` `setStreamContext​(StreamContext context)`
`Explanation` `toExplanation​(StreamFactory factory)` Returns an explanation about the stream object
`StreamExpressionParameter` `toExpression​(StreamFactory factory)`

### Methods inherited from class org.apache.solr.client.solrj.io.stream.TupleStream

`getShards, getShards, getStreamNodeId, writeMap`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.apache.solr.common.MapWriter

`jsonStr, toMap`

### Methods inherited from interface org.apache.solr.common.NavigableObject

`_forEachEntry, _forEachEntry, _forEachEntry, _get, _get, _getStr, _getStr, _size`

### Methods inherited from interface org.apache.solr.client.solrj.io.stream.ParallelMetricsRollup

`getRollupMetrics, openParallelStream`

### Field Detail

#### cache

    protected transient SolrClientCache cache

#### cloudSolrClient

    protected transient CloudSolrClient cloudSolrClient

#### parallelizedStream

    protected transient TupleStream parallelizedStream

### Constructor Detail

#### StatsStream

    public StatsStream​(String zkHost,
                       String collection,
                       SolrParams params,
                       Metric[] metrics)
                throws IOException

Throws:
  `IOException`

#### StatsStream

    public StatsStream​(StreamExpression expression,
                       StreamFactory factory)
                throws IOException

Throws:
  `IOException`

### Method Detail

#### getCollection

    public String getCollection()

#### toExpression

    public StreamExpressionParameter toExpression​(StreamFactory factory)
                                           throws IOException

Specified by:
  `toExpression` in interface `Expressible`
Throws:
  `IOException`

#### toExplanation

    public Explanation toExplanation​(StreamFactory factory)
                              throws IOException

Description copied from interface: `Expressible`
Returns an explanation about the stream object

Specified by:
  `toExplanation` in interface `Expressible`
Specified by:
  `toExplanation` in class `TupleStream`
Parameters:
  `factory` - Stream factory for this, contains information about the function name
Returns:
  Explanation about this stream object containing explanations of any child stream objects
Throws:
  `IOException` - throw on any error

#### setStreamContext

    public void setStreamContext​(StreamContext context)

Specified by:
  `setStreamContext` in class `TupleStream`

#### children

    public List<TupleStream> children()

Specified by:
  `children` in class `TupleStream`

#### open

    public void open()
              throws IOException

Specified by:
  `open` in class `TupleStream`
Throws:
  `IOException`

#### close

    public void close()
               throws IOException

Specified by:
  `close` in interface `AutoCloseable`
Specified by:
  `close` in interface `Closeable`
Specified by:
  `close` in class `TupleStream`
Throws:
  `IOException`

#### read

    public Tuple read()
               throws IOException

Specified by:
  `read` in class `TupleStream`
Throws:
  `IOException`

#### getCost

    public int getCost()

Overrides:
  `getCost` in class `TupleStream`

#### getStreamSort

    public StreamComparator getStreamSort()

Specified by:
  `getStreamSort` in class `TupleStream`

#### parallelize

    public TupleStream[] parallelize​(List<String> partitions)
                              throws IOException

Description copied from interface: `ParallelMetricsRollup`
Given a list of collections, return an array of TupleStream for each partition.

Specified by:
  `parallelize` in interface `ParallelMetricsRollup`
Parameters:
  `partitions` - A list of collections to parallelize metrics computation across.
Returns:
  An array of TupleStream for each partition requested.
Throws:
  `IOException` - if an error occurs while constructing the underlying TupleStream for a partition.

#### getSortedRollupStream

    public TupleStream getSortedRollupStream​(ParallelListStream plist,
                                             Metric[] rollupMetrics)
                                      throws IOException

Description copied from interface: `ParallelMetricsRollup`
Get the rollup for the parallelized streams that is sorted based on the original (non-parallel) sort order.

Specified by:
  `getSortedRollupStream` in interface `ParallelMetricsRollup`
Parameters:
  `plist` - A parallel list stream to fetch metrics from each partition concurrently
  `rollupMetrics` - An array of metrics to rollup
Returns:
  A rollup over parallelized streams that provide metrics; this is typically a SortStream.
Throws:
  `IOException` - if an error occurs while reading from the sorted stream

#### getRollupSelectFields

    protected Map<String,​String> getRollupSelectFields​(Metric[] rollupMetrics)