[ https://issues.apache.org/jira/browse/SOLR-9687?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15602338#comment-15602338 ]
Andy Chillrud commented on SOLR-9687: ------------------------------------- Couldn't figure out how to create a patch file, but I was able to resolve the issue in Solr 5.3.1 by modifying the getSortedIntervals() method. Replaced the last line of the method {code} return o1.start.compareTo(o2.start); {code} with {code} int startComparison = o1.start.compareTo(o2.start); if (startComparison == 0) { if (o1.startOpen != o2.startOpen) { if (!o1.startOpen) { return -1; } else { return 1; } } } return startComparison; {code} > Values not assigned to all valid Interval Facet intervals in some cases > ----------------------------------------------------------------------- > > Key: SOLR-9687 > URL: https://issues.apache.org/jira/browse/SOLR-9687 > Project: Solr > Issue Type: Bug > Security Level: Public(Default Security Level. Issues are Public) > Components: faceting > Affects Versions: 5.3.1 > Reporter: Andy Chillrud > > Using the interval facet definitions: > * \{!key=Positive}(0,*] > * \{!key=Zero}\[0,0] > * \{!key=Negative}(*,0) > A document with the value "0" in the numeric field the intervals are being > applied to is not counted in the Zero interval. If I change the order of the > definitions to , Negative, Zero, Positive the "0" value is correctly counted > in the Zero interval. > Tracing into the 5.3.1 code the problem is in the > org.apache.solr.request.IntervalFacets class. When the getSortedIntervals() > method sorts the interval definitions for a field by their starting value is > doesn't take into account the startOpen property. When two intervals have > equal start values it needs to sort intervals where startOpen == false before > intervals where startOpen == true. > In the accumIntervalWithValue() method it checks which intervals each > document value should be considered a match for. It iterates through the > sorted intervals and stops checking subsequent intervals when > LOWER_THAN_START result is returned. If the Positive interval is sorted > before the Zero interval it never checks a zero value against the Zero > interval. > I compared the 5.3.1 version of the IntervalFacets class against the 6.2.1 > code, and it looks like the same issue will occur in 6.2.1. -- 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