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

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

Rebased against trunk (git hash f63fc48, SOLR-8114: in Grouping.java rename 
groupSort to withinGroupSort)

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 SelectStream to Streaming API
> ---------------------------------
>
>                 Key: SOLR-7669
>                 URL: https://issues.apache.org/jira/browse/SOLR-7669
>             Project: Solr
>          Issue Type: Improvement
>          Components: SolrJ
>            Reporter: Dennis Gove
>            Priority: Minor
>              Labels: Streaming
>         Attachments: SOLR-7669.patch, SOLR-7669.patch, SOLR-7669.patch
>
>
> Adds a new stream called SelectStream which can be used for two purpose.
>  1. Limit the set of fields included in an outgoing tuple to remove unwanted 
> fields
>  2. Provide aliases for fields. With this it acts as an alternative to the 
> CloudSolrStream's 'aliases' option.
>  For example, in a simple case
> {code}
> select(
>   id, 
>   fieldA_i as fieldA, 
>   fieldB_s as fieldB,
>   search(collection1, q="*:*", fl="id,fieldA_i,fieldB_s", sort="fieldA_i asc, 
> fieldB_s asc, id asc")
> )
> {code}
> This can also be used as part of complex expressions to help keep track of 
> what is being worked on. This is particularly useful when merging/joining 
> multiple collections which share field names. For example, the following 
> results in a set of tuples including only the fields id, left.ident, and 
> right.ident even though the total set of fields required to perform the 
> search and join is much larger than just those three fields.
> {code}
> select(
>   id, left.ident, right.ident,
>   innerJoin(
>     select(
>       id, join1_i as left.join1, join2_s as left.join2, ident_s as left.ident,
>       search(collection1, q="side_s:left", fl="id,join1_i,join2_s,ident_s", 
> sort="join1_i asc, join2_s asc, id asc")
>     ),
>     select(
>       join3_i as right.join1, join2_s as right.join2, ident_s as right.ident,
>       search(collection1, q="side_s:right", fl="join3_i,join2_s,ident_s", 
> sort="join3_i asc, join2_s asc"),
>     ),
>     on="left.join1=right.join1, left.join2=right.join2"
>   )
> )
> {code}
> This depends on SOLR-7584.



--
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