[ 
https://issues.apache.org/jira/browse/SOLR-7513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14593611#comment-14593611
 ] 

Joel Bernstein edited comment on SOLR-7513 at 6/19/15 4:40 PM:
---------------------------------------------------------------

First impression is that it all looks good. I like the StreamComparator 
introduced in SOLR-7528 and the Equalitors are a nice design. I'll review the 
changes and run all the tests.


was (Author: joel.bernstein):
First impression that it all looks good. I like the StreamComparator introduced 
in SOLR-7528 and Equalitors are a nice design. I'll review the changes some and 
run all the tests.

> Add Equalitors to Streaming Expressions
> ---------------------------------------
>
>                 Key: SOLR-7513
>                 URL: https://issues.apache.org/jira/browse/SOLR-7513
>             Project: Solr
>          Issue Type: Improvement
>          Components: clients - java
>    Affects Versions: Trunk
>            Reporter: Dennis Gove
>            Assignee: Joel Bernstein
>            Priority: Minor
>             Fix For: 5.3
>
>         Attachments: SOLR-7513.patch, SOLR-7513.patch, SOLR-7513.patch
>
>
> Right now all streams use the Comparator<Tuple> interface to compare tuples. 
> The Comparator interface will tell you if tupleA is before, after, or equal 
> to tupleB. This is great for most streams as they use this logic when 
> combining multiple streams together. However, some streams only care about 
> the equality of two tuples and the less/greater than logic is unnecessary.
> This depends on SOLR-7377.
> This patch is to introduce a new interface into streaming expressions called 
> Equalitor<Tuple> which will return if two tuples are equal. The benefit here 
> is that the expressions for streams using Equalitor instead of Comparator can 
> omit the ordering part.
> {code}
> unique(somestream, over="fieldA asc, fieldB desc")
> {code}
> can become
> {code}
> unique(somestream, over="fieldA,fieldB")
> {code}
> The added benefit is that this will set us up with simplier expressions for 
> joins (hash, merge, inner, outer, etc...) as those only care about equality.
> By adding this as an interface we make no assumptions about what it means to 
> be equal, just that some implementation needs to exist adhering to the 
> Equalitor<Tuple> interface which will determine if two tuples are logically 
> equal. 
> We do define at least one concrete class which checks for equality but that 
> does not preclude others from adding additional concrete classes with their 
> own logic in place.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to