Search in sources :

Example 16 with Bucket

use of com.enonic.xp.aggregation.Bucket in project xp by enonic.

the class DateRangeAggregationTest method ranges_with_date_math_date.

@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);
}
Also used : FindNodesByQueryResult(com.enonic.xp.node.FindNodesByQueryResult) DateRangeBucket(com.enonic.xp.aggregation.DateRangeBucket) Bucket(com.enonic.xp.aggregation.Bucket) Instant(java.time.Instant) NodeQuery(com.enonic.xp.node.NodeQuery) BucketAggregation(com.enonic.xp.aggregation.BucketAggregation) Buckets(com.enonic.xp.aggregation.Buckets) Test(org.junit.jupiter.api.Test) AbstractNodeTest(com.enonic.xp.repo.impl.node.AbstractNodeTest)

Example 17 with Bucket

use of com.enonic.xp.aggregation.Bucket in project xp by enonic.

the class HistogramAggregationTest method order.

@Test
public void order() throws Exception {
    createNode(1d, "n1", NodePath.ROOT);
    createNode(2d, "n2", NodePath.ROOT);
    createNode(3d, "n3", NodePath.ROOT);
    createNode(10d, "n4", NodePath.ROOT);
    createNode(11d, "n5", NodePath.ROOT);
    createNode(20d, "n6", NodePath.ROOT);
    final NodeQuery query = NodeQuery.create().addAggregationQuery(HistogramAggregationQuery.create("count_asc").fieldName("value").interval(10L).order(HistogramAggregationQuery.Order.COUNT_ASC).build()).addAggregationQuery(HistogramAggregationQuery.create("key_asc").fieldName("value").interval(20L).order(HistogramAggregationQuery.Order.KEY_ASC).build()).build();
    FindNodesByQueryResult result = doFindByQuery(query);
    assertEquals(2, result.getAggregations().getSize());
    final BucketAggregation countAsc = (BucketAggregation) result.getAggregations().get("count_asc");
    final BucketAggregation keyAsc = (BucketAggregation) result.getAggregations().get("key_asc");
    final Iterator<Bucket> countAsIterator = countAsc.getBuckets().iterator();
    long previous = 0;
    while (countAsIterator.hasNext()) {
        final long nextCount = countAsIterator.next().getDocCount();
        assertTrue(previous < nextCount);
        previous = nextCount;
    }
    final Iterator<Bucket> keyAscIterator = keyAsc.getBuckets().iterator();
    String key = null;
    while (keyAscIterator.hasNext()) {
        final String next = keyAscIterator.next().getKey();
        assertTrue(key == null || key.compareTo(next) < 0);
        key = next;
    }
}
Also used : FindNodesByQueryResult(com.enonic.xp.node.FindNodesByQueryResult) Bucket(com.enonic.xp.aggregation.Bucket) NodeQuery(com.enonic.xp.node.NodeQuery) BucketAggregation(com.enonic.xp.aggregation.BucketAggregation) Test(org.junit.jupiter.api.Test) AbstractNodeTest(com.enonic.xp.repo.impl.node.AbstractNodeTest)

Aggregations

Bucket (com.enonic.xp.aggregation.Bucket)17 BucketAggregation (com.enonic.xp.aggregation.BucketAggregation)15 FindNodesByQueryResult (com.enonic.xp.node.FindNodesByQueryResult)14 NodeQuery (com.enonic.xp.node.NodeQuery)14 AbstractNodeTest (com.enonic.xp.repo.impl.node.AbstractNodeTest)14 Test (org.junit.jupiter.api.Test)14 Aggregation (com.enonic.xp.aggregation.Aggregation)8 Buckets (com.enonic.xp.aggregation.Buckets)6 DateRangeBucket (com.enonic.xp.aggregation.DateRangeBucket)5 NumericRangeBucket (com.enonic.xp.aggregation.NumericRangeBucket)4 Instant (java.time.Instant)2 GeoDistanceRangeBucket (com.enonic.xp.aggregation.GeoDistanceRangeBucket)1 SingleValueMetricAggregation (com.enonic.xp.aggregation.SingleValueMetricAggregation)1 StatsAggregation (com.enonic.xp.aggregation.StatsAggregation)1