Dennis Gove created SOLR-7513:
---------------------------------
Summary: 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
Priority: Minor
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]