@Test public void ranges_with_date_math_date() throws Exception { final Instant anchor = Instant.parse("2014-12-10T10:00:00Z"); createNode(anchor, "n1", NodePath.ROOT); createNode(anchor.plusSeconds(-3600), "n2", NodePath.ROOT); createNode(anchor.plusSeconds(-3600 * 2), "n3", NodePath.ROOT); createNode(anchor.plusSeconds(-3600 * 3), "n4", NodePath.ROOT); createNode(anchor.plusSeconds(-3600 * 4), "n5", NodePath.ROOT); createNode(anchor.plusSeconds(-3600 * 5), "n6", NodePath.ROOT); final NodeQuery query = NodeQuery.create() .addAggregationQuery( DateRangeAggregationQuery.create("myDateRange") .fieldName("instant") .addRange(DateRange.create().to("2014-12-10T10:00:00Z||-5h").build()) .addRange( DateRange.create() .from("2014-12-10T10:00:00.000Z||-5h") .to("2014-12-10T10:00:00.000Z||-3h") .build()) .addRange(DateRange.create().from("2014-12-10T10:00:00Z||-3h").build()) .build()) .build(); FindNodesByQueryResult result = doFindByQuery(query); assertEquals(1, result.getAggregations().getSize()); final BucketAggregation aggregation = (BucketAggregation) result.getAggregations().get("myDateRange"); final Buckets buckets = aggregation.getBuckets(); final Iterator<Bucket> iterator = buckets.iterator(); verifyBucket(iterator.next(), 0); verifyBucket(iterator.next(), 2); verifyBucket(iterator.next(), 4); }
@Test public void ranges() throws Exception { createNode(Instant.parse("2014-12-10T10:00:00Z"), "n1", NodePath.ROOT); createNode(Instant.parse("2014-12-10T10:30:00Z"), "n2", NodePath.ROOT); createNode(Instant.parse("2014-12-10T11:30:00Z"), "n3", NodePath.ROOT); createNode(Instant.parse("2014-12-10T12:45:00Z"), "n4", NodePath.ROOT); createNode(Instant.parse("2014-12-10T13:59:59Z"), "n5", NodePath.ROOT); createNode(Instant.parse("2014-12-10T14:01:00Z"), "n6", NodePath.ROOT); final NodeQuery query = NodeQuery.create() .addAggregationQuery( DateRangeAggregationQuery.create("myDateRange") .fieldName("instant") .addRange(DateRange.create().to(Instant.parse("2014-12-10T11:00:00Z")).build()) .addRange( DateRange.create() .from(Instant.parse("2014-12-10T11:00:00Z")) .to(Instant.parse("2014-12-10T14:00:00Z")) .build()) .addRange( DateRange.create().from(Instant.parse("2014-12-10T14:00:00Z")).build()) .build()) .build(); FindNodesByQueryResult result = doFindByQuery(query); assertEquals(1, result.getAggregations().getSize()); final BucketAggregation aggregation = (BucketAggregation) result.getAggregations().get("myDateRange"); final Buckets buckets = aggregation.getBuckets(); final Iterator<Bucket> iterator = buckets.iterator(); verifyBucket(iterator.next(), 2); verifyBucket(iterator.next(), 3); verifyBucket(iterator.next(), 1); }