@@ -631,51 +631,44 @@ IdsFilter (MappingName "tweet") [DocId "1"]
632#### Range Filter
632#### Range Filter
636``` {.haskell}
634``` {.haskell}
638-- RangeFilter :: FieldName
636-- RangeFilter :: FieldName
639−-- -> Either HalfRange Range
637+-- -> RangeValue
640-- -> RangeExecution
638-- -> RangeExecution
641-- -> Cache -> Filter
639-- -> Cache -> Filter
643let filter = RangeFilter (FieldName "age")
641let filter = RangeFilter (FieldName "age")
644− (Right (RangeLtGt (LessThan 100000.0) (GreaterThan 1000.0)))
642+ (RangeGtLt (GreaterThan 1000.0) (LessThan 100000.0))
645 RangeExecutionIndex False
643 RangeExecutionIndex False
651``` {.haskell}
647``` {.haskell}
653let filter = RangeFilter (FieldName "age")
649let filter = RangeFilter (FieldName "age")
654− (Left (HalfRangeLt (LessThan 100000.0)))
650+ (RangeLte (LessThanEq 100000.0))
655 RangeExecutionIndex False
651 RangeExecutionIndex False
659−##### Typed Ranges
655+##### Date Ranges
661−These look slightly different:
663−``` {.haskell}
657+Date ranges are expressed in UTCTime. Date ranges use the same range bound constructors as numerics, except that they end in "D".
665−-- RangeFilterText :: FieldName
659+Note that compatibility with ES is tested only down to seconds.
670−-- RangeFilterDouble :: FieldName
661+``` {.haskell}
675−let filter = RangeFilterDouble (FieldName "age")
663+let filter = RangeFilter (FieldName "postDate")
676− (RangeDoubleGtLt 1000.0 100000.0)
664+ (RangeDateGtLte
665+ (GreaterThanD (UTCTime
666+ (ModifiedJulianDay 55000)
667+ (secondsToDiffTime 9)))
668+ (LessThanEqD (UTCTime
669+ (ModifiedJulianDay 55000)
670+ (secondsToDiffTime 11))))
677 RangeExecutionIndex False
671 RangeExecutionIndex False
681#### Regexp Filter
674#### Regexp Filter