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

## Class ParallelStream

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

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

    public class ParallelStream
    extends CloudSolrStream
    implements Expressible

The ParallelStream decorates a TupleStream implementation and pushes it to N workers for parallel execution. Workers are chosen from a SolrCloud collection. Tuples that are streamed back from the workers are ordered by a Comparator.

Since:
  5.1.0
See Also:
  Serialized Form

### Nested Class Summary

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

`CloudSolrStream.StreamOpener, CloudSolrStream.TupleWrapper`

### 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 inherited from class org.apache.solr.client.solrj.io.stream.CloudSolrStream

`cloudSolrClient, collection, comp, eofTuples, fieldMappings, params, solrStreams, streamContext, tuples, zkHost`

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

`EMPTY`

### Constructor Summary

Constructors
`ParallelStream​(String zkHost, String collection, String expressionString, int workers, StreamComparator comp)`
`ParallelStream​(String zkHost, String collection, TupleStream tupleStream, int workers, StreamComparator comp)`
`ParallelStream​(StreamExpression expression, StreamFactory factory)`

### Method Summary

All Methods Instance Methods Concrete Methods
`List<TupleStream>` `children()`
`protected void` `constructStreams()`
`Tuple` `read()`
`void` `setStreamContext​(StreamContext streamContext)`
`void` `setStreamFactory​(StreamFactory streamFactory)`
`Explanation` `toExplanation​(StreamFactory factory)` Returns an explanation about the stream object
`StreamExpression` `toExpression​(StreamFactory factory)`

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

`_read, adjustParams, close, getEofTuples, getSlices, getStreamSort, open, setFieldMappings, setTrace`

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

`getCost, 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`

### Constructor Detail

#### ParallelStream

    public ParallelStream​(String zkHost,
                          String collection,
                          TupleStream tupleStream,
                          int workers,
                          StreamComparator comp)
                   throws IOException

Throws:
  `IOException`

#### ParallelStream

    public ParallelStream​(String zkHost,
                          String collection,
                          String expressionString,
                          int workers,
                          StreamComparator comp)
                   throws IOException

Throws:
  `IOException`

#### ParallelStream

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

Throws:
  `IOException`

### Method Detail

#### setStreamFactory

    public void setStreamFactory​(StreamFactory streamFactory)

#### toExpression

    public StreamExpression toExpression​(StreamFactory factory)
                                  throws IOException

Specified by:
  `toExpression` in interface `Expressible`
Overrides:
  `toExpression` in class `CloudSolrStream`
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`
Overrides:
  `toExplanation` in class `CloudSolrStream`
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

#### children

    public List<TupleStream> children()

Overrides:
  `children` in class `CloudSolrStream`

#### read

    public Tuple read()
               throws IOException

Overrides:
  `read` in class `CloudSolrStream`
Throws:
  `IOException`

#### setStreamContext

    public void setStreamContext​(StreamContext streamContext)

Overrides:
  `setStreamContext` in class `CloudSolrStream`

#### constructStreams

    protected void constructStreams()
                             throws IOException

Overrides:
  `constructStreams` in class `CloudSolrStream`
Throws:
  `IOException`