Alan Woodward created LUCENE-8828:
-------------------------------------
Summary: Fix Intervals.unordered() without overlaps
Key: LUCENE-8828
URL: https://issues.apache.org/jira/browse/LUCENE-8828
Project: Lucene - Core
Issue Type: Improvement
Reporter: Alan Woodward
Assignee: Alan Woodward
LUCENE-8300 added an option to Intervals.unordered() which would attempt to
find intervals that contained all of a set of subintervals where none of the
subintervals overlapped. Unfortunately, this implementation was buggy, and
could miss documents depending on the order in which the subintervals were
passed to the factory method.
After some digging around, I think that it is not in fact possible to implement
this in anything other than n! time, because of the need to minimize the
resulting intervals. My proposal is to remove the boolean flag, and instead
implement an Intervals.unorderedNoOverlaps() method that takes only two
subsources, and rewrites NO_OVERLAPS(a, b) to OR(ORDERED(a, b), ORDERED(b, a)).
The usual simplifications will apply here, so NO_OVERLAPS(a, a) will end up as
ORDERED(a, a)
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]