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
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:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.solr.client.solrj.io.stream.TupleStream
TupleStream.IgnoreExceptionNested classes/interfaces inherited from interface org.apache.solr.common.MapWriter
org.apache.solr.common.MapWriter.EntryWriter -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected TupleStreamprotected TupleStreamprotected Stringprotected Tupleprotected intFields inherited from interface org.apache.solr.common.MapWriter
EMPTY -
Constructor Summary
ConstructorsConstructorDescriptionHashJoinStream(StreamExpression expression, StreamFactory factory) HashJoinStream(TupleStream fullStream, TupleStream hashStream, List<String> hashOn) -
Method Summary
Modifier and TypeMethodDescriptionchildren()voidclose()protected StringcomputeHash(Tuple tuple, List<String> hashOn) intgetCost()voidopen()read()voidsetStreamContext(StreamContext context) toExplanation(StreamFactory factory) Returns an explanation about the stream objecttoExpression(StreamFactory factory) Methods inherited from class org.apache.solr.client.solrj.io.stream.TupleStream
getShards, getShards, getStreamNodeId, writeMapMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.solr.common.MapWriter
jsonStr, toMap, writeMethods inherited from interface org.apache.solr.common.NavigableObject
_forEachEntry, _forEachEntry, _forEachEntry, _get, _get, _getStr, _getStr, _size
-
Field Details
-
hashStream
-
fullStream
-
leftHashOn
-
rightHashOn
-
hashedTuples
-
workingFullTuple
-
workingFullHash
-
workingHashSetIdx
protected int workingHashSetIdx
-
-
Constructor Details
-
HashJoinStream
public HashJoinStream(TupleStream fullStream, TupleStream hashStream, List<String> hashOn) throws IOException - Throws:
IOException
-
HashJoinStream
- Throws:
IOException
-
-
Method Details
-
toExpression
- Specified by:
toExpressionin interfaceExpressible- Throws:
IOException
-
toExplanation
Description copied from interface:ExpressibleReturns an explanation about the stream object- Specified by:
toExplanationin interfaceExpressible- Specified by:
toExplanationin 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
-
setStreamContext
- Specified by:
setStreamContextin classTupleStream
-
children
- Specified by:
childrenin classTupleStream
-
open
- Specified by:
openin classTupleStream- Throws:
IOException
-
computeHash
-
close
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein classTupleStream- Throws:
IOException
-
read
- Specified by:
readin classTupleStream- Throws:
IOException
-
getStreamSort
- Specified by:
getStreamSortin classTupleStream
-
getCost
public int getCost()- Overrides:
getCostin classTupleStream
-