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.TupleStream
TupleStream.IgnoreException
-
-
Field Summary
-
Fields inherited from class org.apache.solr.client.solrj.io.stream.HashJoinStream
fullStream, hashedTuples, hashStream, leftHashOn, rightHashOn, workingFullHash, workingFullTuple, workngHashSetIdx
-
-
Constructor Summary
Constructors Constructor Description OuterHashJoinStream(StreamExpression expression, StreamFactory factory)
OuterHashJoinStream(TupleStream fullStream, TupleStream hashStream, List<String> hashOn)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Tuple
read()
StreamExpression
toExpression(StreamFactory factory)
-
Methods inherited from class org.apache.solr.client.solrj.io.stream.HashJoinStream
children, close, computeHash, getCost, getStreamSort, open, setStreamContext, toExplanation
-
Methods inherited from class org.apache.solr.client.solrj.io.stream.TupleStream
getShards, getShards, getStreamNodeId, writeMap
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.solr.client.solrj.io.stream.expr.Expressible
toExplanation
-
-
-
-
Constructor Detail
-
OuterHashJoinStream
public OuterHashJoinStream(TupleStream fullStream, TupleStream hashStream, List<String> hashOn) throws IOException
- Throws:
IOException
-
OuterHashJoinStream
public OuterHashJoinStream(StreamExpression expression, StreamFactory factory) throws IOException
- Throws:
IOException
-
-
Method Detail
-
toExpression
public StreamExpression toExpression(StreamFactory factory) throws IOException
- Specified by:
toExpression
in interfaceExpressible
- Overrides:
toExpression
in classHashJoinStream
- Throws:
IOException
-
read
public Tuple read() throws IOException
- Overrides:
read
in classHashJoinStream
- Throws:
IOException
-
-