Class OuterHashJoinStream
- java.lang.Object
- 
- org.apache.solr.client.solrj.io.stream.TupleStream
- 
- org.apache.solr.client.solrj.io.stream.HashJoinStream
- 
- org.apache.solr.client.solrj.io.stream.OuterHashJoinStream
 
 
 
- 
- All Implemented Interfaces:
- Closeable,- Serializable,- AutoCloseable,- Expressible,- org.apache.solr.common.MapSerializable,- org.apache.solr.common.MapWriter,- org.apache.solr.common.NavigableObject
 
 public class OuterHashJoinStream extends HashJoinStream implements Expressible Takes two streams (fullStream and hashStream) and joins them similar to an LeftOuterJoinStream. The difference in a OuterHashJoinStream 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. The difference between this and a HashJoinStream is that a tuple in the fullStream will be returned even if it doesn't have any matching tuples in the hashStream. You are expected to provide a set of fields for which the hash will be calculated from. If a tuple from the hashStream 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. If a tuple from the fullStream does not contain a value (ie, null) for one of the fields the hash is being computed on then that tuple will be returned without any joined tuples from the hashStream- 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 Summary- 
Fields inherited from class org.apache.solr.client.solrj.io.stream.HashJoinStreamfullStream, hashedTuples, hashStream, leftHashOn, rightHashOn, workingFullHash, workingFullTuple, workngHashSetIdx
 
- 
 - 
Constructor SummaryConstructors Constructor Description OuterHashJoinStream(StreamExpression expression, StreamFactory factory)OuterHashJoinStream(TupleStream fullStream, TupleStream hashStream, List<String> hashOn)
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description Tupleread()StreamExpressiontoExpression(StreamFactory factory)- 
Methods inherited from class org.apache.solr.client.solrj.io.stream.HashJoinStreamchildren, close, computeHash, getCost, getStreamSort, open, setStreamContext, toExplanation
 - 
Methods inherited from class org.apache.solr.client.solrj.io.stream.TupleStreamgetShards, getShards, getStreamNodeId, writeMap
 - 
Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 - 
Methods inherited from interface org.apache.solr.client.solrj.io.stream.expr.ExpressibletoExplanation
 
- 
 
- 
- 
- 
Constructor Detail- 
OuterHashJoinStreampublic OuterHashJoinStream(TupleStream fullStream, TupleStream hashStream, List<String> hashOn) throws IOException - Throws:
- IOException
 
 - 
OuterHashJoinStreampublic OuterHashJoinStream(StreamExpression expression, StreamFactory factory) throws IOException - Throws:
- IOException
 
 
- 
 - 
Method Detail- 
toExpressionpublic StreamExpression toExpression(StreamFactory factory) throws IOException - Specified by:
- toExpressionin interface- Expressible
- Overrides:
- toExpressionin class- HashJoinStream
- Throws:
- IOException
 
 - 
readpublic Tuple read() throws IOException - Overrides:
- readin class- HashJoinStream
- Throws:
- IOException
 
 
- 
 
-