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

## 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

      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.
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and 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 and Description
    --- | ---
    `List<TupleStream>` | `children()`
    `void` | `close()`
    `int` | `getCost()`
    `StreamComparator` | `getStreamSort()` Return the stream sort - ie, the order in which records are returned
    `void` | `open()`
    `Tuple` | `read()`
    `void` | `setStreamContext(StreamContext context)`
    `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

      `getStreamNodeId, writeStreamClose, writeStreamOpen`

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

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

- - ### 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:
        `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 `Closeable`
      Specified by:
        `close` in interface `AutoCloseable`
      Specified by:
        `close` in class `TupleStream`
      Throws:
        `IOException`

    - #### read

          public Tuple read()
                     throws IOException

      Specified by:
        `read` 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`

    - #### getCost

          public int getCost()

      Overrides:
        `getCost` in class `TupleStream`

Copyright © 2000-2016 Apache Software Foundation. All Rights Reserved.