You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Dennis Gove (JIRA)" <ji...@apache.org> on 2015/05/22 02:03:18 UTC

[jira] [Created] (SOLR-7584) Add Joins to the Streaming API and Streaming Expressions

Dennis Gove created SOLR-7584:
---------------------------------

             Summary: Add Joins to the Streaming API and Streaming Expressions
                 Key: SOLR-7584
                 URL: https://issues.apache.org/jira/browse/SOLR-7584
             Project: Solr
          Issue Type: Improvement
          Components: SolrJ
            Reporter: Dennis Gove
            Priority: Minor


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
{code}
innerJoin(
  search(collection1, q=*:*, fl="fieldA, fieldB, fieldC", ...),
  search(collection2, q=*:*, fl="fieldA, fieldD, fieldE", ...),
  on="fieldA=fieldA"
)
{code}
or with multi-field on clauses
{code}
innerJoin(
  search(collection1, q=*:*, fl="fieldA, fieldB, fieldC", ...),
  search(collection2, q=*:*, fl="fieldA, fieldD, fieldE", ...),
  on="fieldA=fieldA, fieldB=fieldD"
)
{code}

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.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org