[ 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