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
,org.apache.solr.common.MapSerializable
,org.apache.solr.common.MapWriter
,org.apache.solr.common.NavigableObject
,org.noggit.JSONWriter.Writable
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
-
-
Field Summary
-
Fields inherited from class org.apache.solr.client.solrj.io.stream.CloudSolrStream
collection, comp, eofTuples, fieldMappings, params, solrStreams, streamContext, tuples, zkHost
-
-
Constructor Summary
Constructors Constructor Description 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 Modifier and Type Method Description 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 objectStreamExpression
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
-
-
-
-
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 interfaceExpressible
- Overrides:
toExpression
in classCloudSolrStream
- 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 interfaceExpressible
- Overrides:
toExplanation
in classCloudSolrStream
- 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 classCloudSolrStream
-
read
public Tuple read() throws IOException
- Overrides:
read
in classCloudSolrStream
- Throws:
IOException
-
setStreamContext
public void setStreamContext(StreamContext streamContext)
- Overrides:
setStreamContext
in classCloudSolrStream
-
constructStreams
protected void constructStreams() throws IOException
- Overrides:
constructStreams
in classCloudSolrStream
- Throws:
IOException
-
-