Description
Add InnerJoinStream, LeftOuterJoinStream, and supporting classes to the Streaming API to allow for joining between sub-streams.
At its basic, it would look something like this
innerJoin( search(collection1, q=*:*, fl="fieldA, fieldB, fieldC", ...), search(collection2, q=*:*, fl="fieldA, fieldD, fieldE", ...), on="fieldA=fieldA" )
or with multi-field on clauses
innerJoin( search(collection1, q=*:*, fl="fieldA, fieldB, fieldC", ...), search(collection2, q=*:*, fl="fieldA, fieldD, fieldE", ...), on="fieldA=fieldA, fieldB=fieldD" )
I'd also like to support the option of doing a hash join instead of the default merge join but I haven't yet figured out the best way to express that. I'd like to let the user tell us which sub-stream should be hashed (the least-cost one).
Also, I've been thinking about field aliasing and might want to add a SelectStream which serves the purpose of allowing us to limit the fields coming out and rename fields.
Depends on SOLR-7554
Attachments
Attachments
Issue Links
- is related to
-
SOLR-8125 Umbrella ticket for Streaming and SQL issues
-
- Open
-