Search in sources :

Example 11 with Stats

use of org.elasticsearch.search.aggregations.metrics.stats.Stats in project elasticsearch by elastic.

the class StatsIT method testSingleValuedField_WithFormatter.

public void testSingleValuedField_WithFormatter() throws Exception {
    SearchResponse searchResponse = client().prepareSearch("idx").setQuery(matchAllQuery()).addAggregation(stats("stats").format("0000.0").field("value")).execute().actionGet();
    assertHitCount(searchResponse, 10);
    Stats stats = searchResponse.getAggregations().get("stats");
    assertThat(stats, notNullValue());
    assertThat(stats.getName(), equalTo("stats"));
    assertThat(stats.getAvg(), equalTo((double) (1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10) / 10));
    assertThat(stats.getAvgAsString(), equalTo("0005.5"));
    assertThat(stats.getMin(), equalTo(1.0));
    assertThat(stats.getMinAsString(), equalTo("0001.0"));
    assertThat(stats.getMax(), equalTo(10.0));
    assertThat(stats.getMaxAsString(), equalTo("0010.0"));
    assertThat(stats.getSum(), equalTo((double) 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10));
    assertThat(stats.getSumAsString(), equalTo("0055.0"));
    assertThat(stats.getCount(), equalTo(10L));
    assertThat(stats.getCountAsString(), equalTo("0010.0"));
}
Also used : Stats(org.elasticsearch.search.aggregations.metrics.stats.Stats) SearchResponse(org.elasticsearch.action.search.SearchResponse) ElasticsearchAssertions.assertSearchResponse(org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse)

Example 12 with Stats

use of org.elasticsearch.search.aggregations.metrics.stats.Stats in project elasticsearch by elastic.

the class StatsIT method testOrderByEmptyAggregation.

@Override
public void testOrderByEmptyAggregation() throws Exception {
    SearchResponse searchResponse = client().prepareSearch("idx").setQuery(matchAllQuery()).addAggregation(terms("terms").field("value").order(Order.compound(Order.aggregation("filter>stats.avg", true))).subAggregation(filter("filter", termQuery("value", 100)).subAggregation(stats("stats").field("value")))).get();
    assertHitCount(searchResponse, 10);
    Terms terms = searchResponse.getAggregations().get("terms");
    assertThat(terms, notNullValue());
    List<Terms.Bucket> buckets = terms.getBuckets();
    assertThat(buckets, notNullValue());
    assertThat(buckets.size(), equalTo(10));
    for (int i = 0; i < 10; i++) {
        Terms.Bucket bucket = buckets.get(i);
        assertThat(bucket, notNullValue());
        assertThat(bucket.getKeyAsNumber(), equalTo((long) i + 1));
        assertThat(bucket.getDocCount(), equalTo(1L));
        Filter filter = bucket.getAggregations().get("filter");
        assertThat(filter, notNullValue());
        assertThat(filter.getDocCount(), equalTo(0L));
        Stats stats = filter.getAggregations().get("stats");
        assertThat(stats, notNullValue());
        assertThat(stats.getMin(), equalTo(Double.POSITIVE_INFINITY));
        assertThat(stats.getMax(), equalTo(Double.NEGATIVE_INFINITY));
        assertThat(stats.getAvg(), equalTo(Double.NaN));
        assertThat(stats.getSum(), equalTo(0.0));
        assertThat(stats.getCount(), equalTo(0L));
    }
}
Also used : Filter(org.elasticsearch.search.aggregations.bucket.filter.Filter) Terms(org.elasticsearch.search.aggregations.bucket.terms.Terms) Stats(org.elasticsearch.search.aggregations.metrics.stats.Stats) SearchResponse(org.elasticsearch.action.search.SearchResponse) ElasticsearchAssertions.assertSearchResponse(org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse)

Example 13 with Stats

use of org.elasticsearch.search.aggregations.metrics.stats.Stats in project elasticsearch by elastic.

the class StatsIT method testSingleValuedField.

@Override
public void testSingleValuedField() throws Exception {
    SearchResponse searchResponse = client().prepareSearch("idx").setQuery(matchAllQuery()).addAggregation(stats("stats").field("value")).execute().actionGet();
    assertShardExecutionState(searchResponse, 0);
    assertHitCount(searchResponse, 10);
    Stats stats = searchResponse.getAggregations().get("stats");
    assertThat(stats, notNullValue());
    assertThat(stats.getName(), equalTo("stats"));
    assertThat(stats.getAvg(), equalTo((double) (1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10) / 10));
    assertThat(stats.getMin(), equalTo(1.0));
    assertThat(stats.getMax(), equalTo(10.0));
    assertThat(stats.getSum(), equalTo((double) 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10));
    assertThat(stats.getCount(), equalTo(10L));
}
Also used : Stats(org.elasticsearch.search.aggregations.metrics.stats.Stats) SearchResponse(org.elasticsearch.action.search.SearchResponse) ElasticsearchAssertions.assertSearchResponse(org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse)

Example 14 with Stats

use of org.elasticsearch.search.aggregations.metrics.stats.Stats in project elasticsearch by elastic.

the class StatsIT method testMultiValuedFieldWithValueScriptWithParams.

@Override
public void testMultiValuedFieldWithValueScriptWithParams() throws Exception {
    Map<String, Object> params = new HashMap<>();
    params.put("dec", 1);
    SearchResponse searchResponse = client().prepareSearch("idx").setQuery(matchAllQuery()).addAggregation(stats("stats").field("values").script(new Script(ScriptType.INLINE, AggregationTestScriptsPlugin.NAME, "_value - dec", params))).get();
    assertShardExecutionState(searchResponse, 0);
    assertHitCount(searchResponse, 10);
    Stats stats = searchResponse.getAggregations().get("stats");
    assertThat(stats, notNullValue());
    assertThat(stats.getName(), equalTo("stats"));
    assertThat(stats.getAvg(), equalTo((double) (1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11) / 20));
    assertThat(stats.getMin(), equalTo(1.0));
    assertThat(stats.getMax(), equalTo(11.0));
    assertThat(stats.getSum(), equalTo((double) 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11));
    assertThat(stats.getCount(), equalTo(20L));
}
Also used : Script(org.elasticsearch.script.Script) HashMap(java.util.HashMap) Stats(org.elasticsearch.search.aggregations.metrics.stats.Stats) SearchResponse(org.elasticsearch.action.search.SearchResponse) ElasticsearchAssertions.assertSearchResponse(org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse)

Example 15 with Stats

use of org.elasticsearch.search.aggregations.metrics.stats.Stats in project elasticsearch by elastic.

the class StatsIT method testPartiallyUnmapped.

public void testPartiallyUnmapped() {
    Stats s1 = client().prepareSearch("idx").addAggregation(stats("stats").field("value")).get().getAggregations().get("stats");
    Stats s2 = client().prepareSearch("idx", "idx_unmapped").addAggregation(stats("stats").field("value")).get().getAggregations().get("stats");
    assertEquals(s1.getAvg(), s2.getAvg(), 1e-10);
    assertEquals(s1.getCount(), s2.getCount());
    assertEquals(s1.getMin(), s2.getMin(), 0d);
    assertEquals(s1.getMax(), s2.getMax(), 0d);
}
Also used : Stats(org.elasticsearch.search.aggregations.metrics.stats.Stats)

Aggregations

Stats (org.elasticsearch.search.aggregations.metrics.stats.Stats)34 SearchResponse (org.elasticsearch.action.search.SearchResponse)31 ElasticsearchAssertions.assertSearchResponse (org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse)31 Terms (org.elasticsearch.search.aggregations.bucket.terms.Terms)11 Script (org.elasticsearch.script.Script)9 AggregationBuilders.extendedStats (org.elasticsearch.search.aggregations.AggregationBuilders.extendedStats)9 Bucket (org.elasticsearch.search.aggregations.bucket.terms.Terms.Bucket)9 ExtendedStats (org.elasticsearch.search.aggregations.metrics.stats.extended.ExtendedStats)9 HashMap (java.util.HashMap)4 Filter (org.elasticsearch.search.aggregations.bucket.filter.Filter)4 Histogram (org.elasticsearch.search.aggregations.bucket.histogram.Histogram)4 ArrayList (java.util.ArrayList)2 Map (java.util.Map)2 Global (org.elasticsearch.search.aggregations.bucket.global.Global)2 Bucket (org.elasticsearch.search.aggregations.bucket.histogram.Histogram.Bucket)2 Matchers.containsString (org.hamcrest.Matchers.containsString)2 LongHashSet (com.carrotsearch.hppc.LongHashSet)1 ImmutableMap (com.google.common.collect.ImmutableMap)1 SearchRequestBuilder (org.elasticsearch.action.search.SearchRequestBuilder)1 CompiledScript (org.elasticsearch.script.CompiledScript)1