Class ReducerStream
- java.lang.Object
-
- org.apache.solr.client.solrj.io.stream.TupleStream
-
- org.apache.solr.client.solrj.io.stream.ReducerStream
-
- 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 ReducerStream extends TupleStream implements Expressible
Iterates over a TupleStream and buffers Tuples that are equal based on a comparator. This allows tuples to be grouped by common field(s).The read() method emits one tuple per group. The fields of the emitted Tuple reflect the first tuple encountered in the group.
Use the Tuple.getMaps() method to return all the Tuples in the group. This method returns a list of maps (including the group head), which hold the data for each Tuple in the group.
Note: The ReducerStream requires that it's underlying stream be sorted and partitioned by the same fields as it's 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.TupleStream
TupleStream.IgnoreException
-
-
Constructor Summary
Constructors Constructor Description ReducerStream(StreamExpression expression, StreamFactory factory)ReducerStream(TupleStream stream, StreamComparator comp, ReduceOperation op)ReducerStream(TupleStream stream, StreamEqualitor eq, ReduceOperation op)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description List<TupleStream>children()voidclose()intgetCost()StreamComparatorgetStreamSort()Return the stream sort - ie, the order in which records are returnedvoidopen()Tupleread()voidsetStreamContext(StreamContext context)ExplanationtoExplanation(StreamFactory factory)Returns an explanation about the stream objectStreamExpressiontoExpression(StreamFactory factory)-
Methods inherited from class org.apache.solr.client.solrj.io.stream.TupleStream
getShards, getShards, getStreamNodeId, writeMap
-
-
-
-
Constructor Detail
-
ReducerStream
public ReducerStream(TupleStream stream, StreamEqualitor eq, ReduceOperation op) throws IOException
- Throws:
IOException
-
ReducerStream
public ReducerStream(TupleStream stream, StreamComparator comp, ReduceOperation op) throws IOException
- Throws:
IOException
-
ReducerStream
public ReducerStream(StreamExpression expression, StreamFactory factory) throws IOException
- Throws:
IOException
-
-
Method Detail
-
toExpression
public StreamExpression toExpression(StreamFactory factory) throws IOException
- Specified by:
toExpressionin interfaceExpressible- Throws:
IOException
-
toExplanation
public Explanation toExplanation(StreamFactory factory) throws IOException
Description copied from interface:ExpressibleReturns an explanation about the stream object- Specified by:
toExplanationin interfaceExpressible- Specified by:
toExplanationin classTupleStream- 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:
setStreamContextin classTupleStream
-
children
public List<TupleStream> children()
- Specified by:
childrenin classTupleStream
-
open
public void open() throws IOException- Specified by:
openin classTupleStream- Throws:
IOException
-
close
public void close() throws IOException- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein classTupleStream- Throws:
IOException
-
read
public Tuple read() throws IOException
- Specified by:
readin classTupleStream- Throws:
IOException
-
getStreamSort
public StreamComparator getStreamSort()
Return the stream sort - ie, the order in which records are returned- Specified by:
getStreamSortin classTupleStream
-
getCost
public int getCost()
- Overrides:
getCostin classTupleStream
-
-