WORKS: +{!field f=dateRange1 op=Intersects v='[2016-11-22T12:01:00Z TO 2016-11-22T13:59:00Z]'} +(*:* -{!field f=dateRange2 op=Contains v='[2016-11-22T12:01:00Z TO 2016-11-22T13:59:00Z]'})
+ConstantScore(IntersectsPrefixTreeFilter(fieldName=dateRange1,queryShape=[2016-11-22T12:01 TO 2016-11-22T13:59:00],detailLevel=9,prefixGridScanLevel=7)) +(MatchAllDocsQuery(*:*) -ConstantScore(ContainsPrefixTreeFilter(fieldName=dateRange2,queryShape=[2016-11-22T12:01 TO 2016-11-22T13:59:00],detailLevel=9,multiOverlappingIndexedShapes=true))) DOES NOT WORK : {!field f=dateRange1 op=Intersects v='[2016-11-22T12:01:00Z TO 2016-11-22T13:59:00Z]'} AND (*:* -{!field f=dateRange2 op=Contains v='[2016-11-22T12:01:00Z TO 2016-11-22T13:59:00Z]'}) ConstantScore(IntersectsPrefixTreeFilter(fieldName=dateRange1,queryShape=[2016-11-22T12:01 TO 2016-11-22T13:59:00],detailLevel=9,prefixGridScanLevel=7)) SRK On Thursday, November 24, 2016 9:02 PM, Alessandro Benedetti <benedetti.ale...@gmail.com> wrote: Hey Sandeep, can you debug the query ( debugQuery=on) and show how the query is parsed ? Cheers On Thu, Nov 24, 2016 at 12:38 PM, Sandeep Khanzode < sandeep_khanz...@yahoo.com.invalid> wrote: > Hi Erick, > The example record contains ...dateRange1 = [2016-11-22T18:00:00Z TO > 2016-11-22T20:00:00Z], [2016-11-22T06:00:00Z TO > 2016-11-22T14:00:00Z]dateRange2 > = [2016-11-22T12:00:00Z TO 2016-11-22T14:00:00Z]" > The first query works ... which means that it is able to EXCLUDE this > record from the result (since the negative dateRange2 clause should return > false). Whereas the second query should also work but it does not and > actually pulls the record in the result. > WORKS: > +{!field f=dateRange1 op=Intersects v='[2016-11-22T12:01:00Z TO > 2016-11-22T13:59:00Z]'} +(*:* -{!field f=dateRange2 op=Contains > v='[2016-11-22T12:01:00Z TO 2016-11-22T13:59:00Z]'}) > > > DOES NOT WORK : > {!field f=dateRange1 op=Intersects v='[2016-11-22T12:01:00Z TO > 2016-11-22T13:59:00Z]'} AND (*:* -{!field f=dateRange2 op=Contains > v='[2016-11-22T12:01:00Z TO 2016-11-22T13:59:00Z]'}) > SRK > > On Tuesday, November 22, 2016 9:41 PM, Erick Erickson < > erickerick...@gmail.com> wrote: > > > _How_ does it "not work"? You haven't told us what you expect .vs. > what you get back. > > Plus a sample doc that that violates your expectations (just the > dateRange field) would > also help. > > Best, > Erick > > On Tue, Nov 22, 2016 at 4:23 AM, Sandeep Khanzode > <sandeep_khanz...@yahoo.com.invalid> wrote: > > Hi, > > I have a simple query that should intersect with dateRange1 and NOT be > contained within dateRange2. I have tried the following options: > > > > WORKS: > > +{!field f=dateRange1 op=Intersects v='[2016-11-22T12:01:00Z TO > 2016-11-22T13:59:00Z]'} +(*:* -{!field f=dateRange2 op=Contains > v='[2016-11-22T12:01:00Z TO 2016-11-22T13:59:00Z]'}) > > > > > > DOES NOT WORK : > > {!field f=dateRange1 op=Intersects v='[2016-11-22T12:01:00Z TO > 2016-11-22T13:59:00Z]'} AND (*:* -{!field f=dateRange2 op=Contains > v='[2016-11-22T12:01:00Z TO 2016-11-22T13:59:00Z]'}) > > > > Why? > > > > WILL NOT WORK (because of the negative clause at the top level?): > > {!field f=dateRange1 op=Intersects v='[2016-11-22T12:01:00Z TO > 2016-11-22T13:59:00Z]'} AND -{!field f=dateRange2 op=Contains > v='[2016-11-22T12:01:00Z TO 2016-11-22T13:59:00Z]'} > > > > > > SRK > > > > -- -------------------------- Benedetti Alessandro Visiting card - http://about.me/alessandro_benedetti Blog - http://alexbenedetti.blogspot.co.uk "Tyger, tyger burning bright In the forests of the night, What immortal hand or eye Could frame thy fearful symmetry?" William Blake - Songs of Experience -1794 England