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
,org.apache.solr.common.MapSerializable
,org.apache.solr.common.MapWriter
,org.apache.solr.common.NavigableObject
,org.noggit.JSONWriter.Writable
- Direct Known Subclasses:
DrillStream
,ParallelStream
,ShuffleStream
,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.- Since:
- 5.1.0
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
CloudSolrStream.StreamOpener
protected class
CloudSolrStream.TupleWrapper
-
Nested classes/interfaces inherited from class org.apache.solr.client.solrj.io.stream.TupleStream
TupleStream.IgnoreException
-
-
Field Summary
Fields Modifier and Type Field Description protected String
collection
protected StreamComparator
comp
protected Map<String,Tuple>
eofTuples
protected Map<String,String>
fieldMappings
protected org.apache.solr.common.params.ModifiableSolrParams
params
protected List<TupleStream>
solrStreams
protected StreamContext
streamContext
protected TreeSet<CloudSolrStream.TupleWrapper>
tuples
protected String
zkHost
-
Constructor Summary
Constructors Modifier Constructor Description protected
CloudSolrStream()
CloudSolrStream(String zkHost, String collectionName, org.apache.solr.common.params.SolrParams params)
CloudSolrStream(StreamExpression expression, StreamFactory factory)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Tuple
_read()
protected org.apache.solr.common.params.ModifiableSolrParams
adjustParams(org.apache.solr.common.params.ModifiableSolrParams params)
List<TupleStream>
children()
void
close()
Closes the CloudSolrStreamprotected void
constructStreams()
Map<String,Tuple>
getEofTuples()
static org.apache.solr.common.cloud.Slice[]
getSlices(String collectionName, org.apache.solr.client.solrj.impl.CloudSolrClient cloudSolrClient, boolean checkAlias)
StreamComparator
getStreamSort()
Return the stream sort - ie, the order in which records are returnedvoid
open()
Opens the CloudSolrStreamTuple
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 objectStreamExpression
toExpression(StreamFactory factory)
-
Methods inherited from class org.apache.solr.client.solrj.io.stream.TupleStream
getCost, getShards, getShards, getStreamNodeId, writeMap
-
-
-
-
Field Detail
-
zkHost
protected String zkHost
-
collection
protected String collection
-
params
protected org.apache.solr.common.params.ModifiableSolrParams params
-
comp
protected StreamComparator comp
-
solrStreams
protected transient List<TupleStream> solrStreams
-
tuples
protected transient TreeSet<CloudSolrStream.TupleWrapper> tuples
-
streamContext
protected transient StreamContext streamContext
-
-
Constructor Detail
-
CloudSolrStream
protected CloudSolrStream()
-
CloudSolrStream
public CloudSolrStream(String zkHost, String collectionName, org.apache.solr.common.params.SolrParams params) throws IOException
- Parameters:
zkHost
- Zookeeper ensemble connection stringcollectionName
- Name of the collection to operate onparams
- 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 interfaceExpressible
- 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
- Specified by:
toExplanation
in 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
-
setTrace
public void setTrace(boolean trace)
-
setStreamContext
public void setStreamContext(StreamContext context)
- Specified by:
setStreamContext
in classTupleStream
-
open
public void open() throws IOException
Opens the CloudSolrStream- Specified by:
open
in classTupleStream
- Throws:
IOException
-
children
public List<TupleStream> children()
- Specified by:
children
in classTupleStream
-
getSlices
public static org.apache.solr.common.cloud.Slice[] getSlices(String collectionName, org.apache.solr.client.solrj.impl.CloudSolrClient cloudSolrClient, boolean checkAlias) throws IOException
- Throws:
IOException
-
constructStreams
protected void constructStreams() throws IOException
- Throws:
IOException
-
close
public void close() throws IOException
Closes the CloudSolrStream- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in classTupleStream
- Throws:
IOException
-
getStreamSort
public StreamComparator getStreamSort()
Return the stream sort - ie, the order in which records are returned- Specified by:
getStreamSort
in classTupleStream
-
read
public Tuple read() throws IOException
- Specified by:
read
in classTupleStream
- Throws:
IOException
-
_read
protected Tuple _read() throws IOException
- Throws:
IOException
-
adjustParams
protected org.apache.solr.common.params.ModifiableSolrParams adjustParams(org.apache.solr.common.params.ModifiableSolrParams params)
-
-