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

## Class DeepRandomStream

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

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

    public class DeepRandomStream
    extends TupleStream
    implements Expressible

Connects to Zookeeper to pick replicas from a specific collection to send the query to. Under the covers the SolrStream instances send the query to the replicas. SolrStreams are opened using a thread pool, but a single thread is used to iterate and merge Tuples from each SolrStream.

Since:
  5.1.0
See Also:
  Serialized Form

### Nested Class Summary

Nested Classes
`protected class` `DeepRandomStream.StreamOpener`
`protected class` `DeepRandomStream.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
`protected CloudSolrClient` `cloudSolrClient`
`protected String` `collection`
`protected StreamComparator` `comp`
`protected Map<String,​Tuple>` `eofTuples`
`protected Map<String,​String>` `fieldMappings`
`protected ModifiableSolrParams` `params`
`protected List<TupleStream>` `solrStreams`
`protected StreamContext` `streamContext`
`protected LinkedList<DeepRandomStream.TupleWrapper>` `tuples`
`protected String` `zkHost`

### Constructor Summary

Constructors
`DeepRandomStream()`
`DeepRandomStream​(String zkHost, String collectionName, SolrParams params)`
`DeepRandomStream​(StreamExpression expression, StreamFactory factory)`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`protected Tuple` `_read()`
`protected ModifiableSolrParams` `adjustParams​(ModifiableSolrParams params)`
`List<TupleStream>` `children()`
`void` `close()`
`protected void` `constructStreams()`
`static Slice[]` `getSlices​(String collectionName, ZkStateReader zkStateReader, boolean checkAlias)`
`StreamComparator` `getStreamSort()` Return the stream sort - ie, the order in which records are returned
`void` `open()`
`Tuple` `read()`
`void` `setFieldMappings​(Map<String,​String> fieldMappings)`
`void` `setStreamContext​(StreamContext context)`
`void` `setTrace​(boolean trace)`
`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.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`

### Field Detail

#### zkHost

    protected String zkHost

#### collection

    protected String collection

#### params

    protected ModifiableSolrParams params

#### fieldMappings

    protected Map<String,​String> fieldMappings

#### comp

    protected StreamComparator comp

#### eofTuples

    protected transient Map<String,​Tuple> eofTuples

#### cloudSolrClient

    protected transient CloudSolrClient cloudSolrClient

#### solrStreams

    protected transient List<TupleStream> solrStreams

#### tuples

    protected transient LinkedList<DeepRandomStream.TupleWrapper> tuples

#### streamContext

    protected transient StreamContext streamContext

### Constructor Detail

#### DeepRandomStream

    public DeepRandomStream()

#### DeepRandomStream

    public DeepRandomStream​(String zkHost,
                            String collectionName,
                            SolrParams params)
                     throws IOException

Parameters:
  `zkHost` - Zookeeper ensemble connection string
  `collectionName` - Name of the collection to operate on
  `params` - Map<String, String[]> of parameter/value pairs
Throws:
  `IOException` - Something went wrong

#### DeepRandomStream

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

Throws:
  `IOException`

### Method Detail

#### toExpression

    public StreamExpression 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

#### setFieldMappings

    public void setFieldMappings​(Map<String,​String> fieldMappings)

#### setTrace

    public void setTrace​(boolean trace)

#### setStreamContext

    public void setStreamContext​(StreamContext context)

Specified by:
  `setStreamContext` in class `TupleStream`

#### open

    public void open()
              throws IOException

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

#### children

    public List<TupleStream> children()

Specified by:
  `children` in class `TupleStream`

#### getSlices

    public static Slice[] getSlices​(String collectionName,
                                    ZkStateReader zkStateReader,
                                    boolean checkAlias)
                             throws IOException

Throws:
  `IOException`

#### constructStreams

    protected void constructStreams()
                             throws IOException

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`

#### getStreamSort

    public StreamComparator getStreamSort()

Return the stream sort - ie, the order in which records are returned

Specified by:
  `getStreamSort` in class `TupleStream`

#### read

    public Tuple read()
               throws IOException

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

#### _read

    protected Tuple _read()
                   throws IOException

Throws:
  `IOException`

#### adjustParams

    protected ModifiableSolrParams adjustParams​(ModifiableSolrParams params)