Class HashJoinStream
- java.lang.Object
- 
- org.apache.solr.client.solrj.io.stream.TupleStream
- 
- org.apache.solr.client.solrj.io.stream.HashJoinStream
 
 
- 
- 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:
- OuterHashJoinStream
 
 public class HashJoinStream extends TupleStream implements Expressible Takes two streams (fullStream and hashStream) and joins them similar to an InnerJoinStream. The difference in a HashJoinStream is that the tuples in the hashStream will all be read and hashed when this stream is opened. This provides a few optimizations iff the hashStream has a relatively small number of documents. You are expected to provide a set of fields for which the hash will be calculated from. If a tuple does not contain a value (ie, null) for one of the fields the hash is being computed on then that tuple will not be considered a match to anything. Ie, all fields which are part of the hash must have a non-null value.- Since:
- 6.0.0
- See Also:
- Serialized Form
 
- 
- 
Nested Class Summary- 
Nested classes/interfaces inherited from class org.apache.solr.client.solrj.io.stream.TupleStreamTupleStream.IgnoreException
 
- 
 - 
Field SummaryFields Modifier and Type Field Description protected TupleStreamfullStreamprotected HashMap<String,List<Tuple>>hashedTuplesprotected TupleStreamhashStreamprotected List<String>leftHashOnprotected List<String>rightHashOnprotected StringworkingFullHashprotected TupleworkingFullTupleprotected intworkingHashSetIdx
 - 
Constructor SummaryConstructors Constructor Description HashJoinStream(StreamExpression expression, StreamFactory factory)HashJoinStream(TupleStream fullStream, TupleStream hashStream, List<String> hashOn)
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description List<TupleStream>children()voidclose()protected StringcomputeHash(Tuple tuple, List<String> hashOn)intgetCost()StreamComparatorgetStreamSort()voidopen()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.TupleStreamgetShards, getShards, getStreamNodeId, writeMap
 
- 
 
- 
- 
- 
Field Detail- 
hashStreamprotected TupleStream hashStream 
 - 
fullStreamprotected TupleStream fullStream 
 - 
workingFullTupleprotected Tuple workingFullTuple 
 - 
workingFullHashprotected String workingFullHash 
 - 
workingHashSetIdxprotected int workingHashSetIdx 
 
- 
 - 
Constructor Detail- 
HashJoinStreampublic HashJoinStream(TupleStream fullStream, TupleStream hashStream, List<String> hashOn) throws IOException - Throws:
- IOException
 
 - 
HashJoinStreampublic HashJoinStream(StreamExpression expression, StreamFactory factory) throws IOException - Throws:
- IOException
 
 
- 
 - 
Method Detail- 
toExpressionpublic StreamExpression toExpression(StreamFactory factory) throws IOException - Specified by:
- toExpressionin interface- Expressible
- Throws:
- IOException
 
 - 
toExplanationpublic Explanation toExplanation(StreamFactory factory) throws IOException Description copied from interface:ExpressibleReturns an explanation about the stream object- Specified by:
- toExplanationin interface- Expressible
- Specified by:
- toExplanationin 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
 
 - 
setStreamContextpublic void setStreamContext(StreamContext context) - Specified by:
- setStreamContextin class- TupleStream
 
 - 
childrenpublic List<TupleStream> children() - Specified by:
- childrenin class- TupleStream
 
 - 
openpublic void open() throws IOException- Specified by:
- openin class- TupleStream
- Throws:
- IOException
 
 - 
closepublic void close() throws IOException- Specified by:
- closein interface- AutoCloseable
- Specified by:
- closein interface- Closeable
- Specified by:
- closein class- TupleStream
- Throws:
- IOException
 
 - 
readpublic Tuple read() throws IOException - Specified by:
- readin class- TupleStream
- Throws:
- IOException
 
 - 
getStreamSortpublic StreamComparator getStreamSort() - Specified by:
- getStreamSortin class- TupleStream
 
 - 
getCostpublic int getCost() - Overrides:
- getCostin class- TupleStream
 
 
- 
 
-