[ 
https://issues.apache.org/jira/browse/SOLR-7584?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dennis Gove updated SOLR-7584:
------------------------------
    Attachment: SOLR-7584.patch

Part of this ticket is a change in comparators and equalitors to support 
differing field names on either side of the comparison (ie, fieldA = fieldB). 
Due to changes that have come into trunk between the creation of this patch and 
now it was required that I propagate those changes to a couple of other files.

Note, I originally included this change in SOLR-7669 but realized today that 
it's actually necessary in this patch. Here's me regretting the decision to not 
create a separate ticket for the equalitor/comparator changes but this patch 
does also add support for distributed joins so there's that. Either way, 
description of change is below.

Required a couple of changes in the SQL and FacetStream areas related to 
FieldComparator. The FieldComparator has been changed to support different 
field names on the left and right side. The SQL and FacetStream areas use 
FieldComparator for sorting (a totally valid use case) but do expect the left 
and right side field names to be equal. The changes I made go through and 
validate that assumption.

In the future I think I may circle back around and create a new FieldComparator 
with a single field name so that on construction that assumption can be 
enforced.

All tests pass.

> 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
>              Labels: Streaming
>         Attachments: SOLR-7584.patch, SOLR-7584.patch, SOLR-7584.patch, 
> SOLR-7584.patch, SOLR-7584.patch
>
>
> 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.
> Depends on SOLR-7554



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

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

Reply via email to