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

## Class CloudSolrStream

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

- All Implemented Interfaces:
    Closeable, Serializable, AutoCloseable, Expressible
  Direct Known Subclasses:
    ParallelStream, TopicStream

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

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected class` | `CloudSolrStream.StreamOpener`
    `protected class` | `CloudSolrStream.TupleWrapper`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected CloudSolrClient` | `cloudSolrClient`
    `protected String` | `collection`
    `protected StreamComparator` | `comp`
    `protected Map<String,Tuple>` | `eofTuples`
    `protected SolrParams` | `params`
    `protected List<TupleStream>` | `solrStreams`
    `protected StreamContext` | `streamContext`
    `protected TreeSet<CloudSolrStream.TupleWrapper>` | `tuples`
    `protected String` | `zkHost`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `CloudSolrStream()`
    `` | `CloudSolrStream(StreamExpression expression, StreamFactory factory)`
    `` | `CloudSolrStream(String zkHost, String collectionName, Map params)` Deprecated. Use the constructor that has a SolrParams obj rather than a Map
    `` | `CloudSolrStream(String zkHost, String collectionName, SolrParams params)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected Tuple` | `_read()`
    `List<TupleStream>` | `children()`
    `void` | `close()` Closes the CloudSolrStream
    `protected void` | `constructStreams()`
    `Map` | `getEofTuples()`
    `static Collection<Slice>` | `getSlicesIgnoreCase(String name, ClusterState clusterState)`
    `StreamComparator` | `getStreamSort()` Return the stream sort - ie, the order in which records are returned
    `void` | `open()` Opens the CloudSolrStream
    `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, getStreamNodeId, writeStreamClose, writeStreamOpen`

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

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

- - ### Field Detail

    - #### zkHost

          protected String zkHost

    - #### collection

          protected String collection

    - #### params

          protected SolrParams params

    - #### 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 TreeSet<CloudSolrStream.TupleWrapper> tuples

    - #### streamContext

          protected transient StreamContext streamContext

  - ### Constructor Detail

    - #### CloudSolrStream

          protected CloudSolrStream()

    - #### CloudSolrStream

          @Deprecated
          public CloudSolrStream(String zkHost,
                                             String collectionName,
                                             Map params)
                                      throws IOException

      Deprecated. Use the constructor that has a SolrParams obj rather than a Map
      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

        This form does not allow specifying multiple clauses, say "fq" clauses, use the form that takes a SolrParams. Transition code can call the preferred method that takes SolrParams by calling CloudSolrStream(zkHost, collectionName, new ModifiableSolrParams(SolrParams.toMultiMap(new NamedList(Map<String, String>)));

    - #### CloudSolrStream

          public CloudSolrStream(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

    - #### CloudSolrStream

          public CloudSolrStream(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

      Opens the CloudSolrStream
      Specified by:
        `open` in class `TupleStream`
      Throws:
        `IOException`

    - #### getEofTuples

          public Map getEofTuples()

    - #### children

          public List<TupleStream> children()

      Specified by:
        `children` in class `TupleStream`

    - #### getSlicesIgnoreCase

          public static Collection<Slice> getSlicesIgnoreCase(String name,
                                                              ClusterState clusterState)

    - #### constructStreams

          protected void constructStreams()
                                   throws IOException

      Throws:
        `IOException`

    - #### close

          public void close()
                     throws IOException

      Closes the CloudSolrStream
      Specified by:
        `close` in interface `Closeable`
      Specified by:
        `close` in interface `AutoCloseable`
      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`

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