Search in sources :

Example 76 with Bucket

use of org.elasticsearch.search.aggregations.bucket.terms.Terms.Bucket in project elasticsearch by elastic.

the class StringTermsIT method testSingleValueFieldWithGlobalOrdinals.

public void testSingleValueFieldWithGlobalOrdinals() throws Exception {
    ExecutionMode[] executionModes = new ExecutionMode[] { null, ExecutionMode.GLOBAL_ORDINALS, ExecutionMode.GLOBAL_ORDINALS_HASH, ExecutionMode.GLOBAL_ORDINALS_LOW_CARDINALITY };
    for (ExecutionMode executionMode : executionModes) {
        logger.info("Execution mode: {}", executionMode);
        SearchResponse response = client().prepareSearch("idx").setTypes("type").addAggregation(terms("terms").executionHint(executionMode == null ? null : executionMode.toString()).field(SINGLE_VALUED_FIELD_NAME).collectMode(randomFrom(SubAggCollectionMode.values()))).execute().actionGet();
        assertSearchResponse(response);
        Terms terms = response.getAggregations().get("terms");
        assertThat(terms, notNullValue());
        assertThat(terms.getName(), equalTo("terms"));
        assertThat(terms.getBuckets().size(), equalTo(5));
        for (int i = 0; i < 5; i++) {
            Terms.Bucket bucket = terms.getBucketByKey("val" + i);
            assertThat(bucket, notNullValue());
            assertThat(key(bucket), equalTo("val" + i));
            assertThat(bucket.getDocCount(), equalTo(1L));
        }
    }
}
Also used : Bucket(org.elasticsearch.search.aggregations.bucket.terms.Terms.Bucket) Terms(org.elasticsearch.search.aggregations.bucket.terms.Terms) ExecutionMode(org.elasticsearch.search.aggregations.bucket.terms.TermsAggregatorFactory.ExecutionMode) SearchResponse(org.elasticsearch.action.search.SearchResponse) ElasticsearchAssertions.assertSearchResponse(org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse)

Example 77 with Bucket

use of org.elasticsearch.search.aggregations.bucket.terms.Terms.Bucket in project elasticsearch by elastic.

the class StringTermsIT method testScriptSingleValueExplicitSingleValue.

public void testScriptSingleValueExplicitSingleValue() throws Exception {
    Script script = new Script(ScriptType.INLINE, CustomScriptPlugin.NAME, "doc['" + SINGLE_VALUED_FIELD_NAME + "'].value", Collections.emptyMap());
    SearchResponse response = client().prepareSearch("idx").setTypes("type").addAggregation(terms("terms").collectMode(randomFrom(SubAggCollectionMode.values())).executionHint(randomExecutionHint()).script(script)).get();
    assertSearchResponse(response);
    Terms terms = response.getAggregations().get("terms");
    assertThat(terms, notNullValue());
    assertThat(terms.getName(), equalTo("terms"));
    assertThat(terms.getBuckets().size(), equalTo(5));
    for (int i = 0; i < 5; i++) {
        Terms.Bucket bucket = terms.getBucketByKey("val" + i);
        assertThat(bucket, notNullValue());
        assertThat(key(bucket), equalTo("val" + i));
        assertThat(bucket.getDocCount(), equalTo(1L));
    }
}
Also used : Bucket(org.elasticsearch.search.aggregations.bucket.terms.Terms.Bucket) Script(org.elasticsearch.script.Script) Terms(org.elasticsearch.search.aggregations.bucket.terms.Terms) SearchResponse(org.elasticsearch.action.search.SearchResponse) ElasticsearchAssertions.assertSearchResponse(org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse)

Example 78 with Bucket

use of org.elasticsearch.search.aggregations.bucket.terms.Terms.Bucket in project elasticsearch by elastic.

the class StringTermsIT method testSingleValueFieldWithMaxSize.

public void testSingleValueFieldWithMaxSize() throws Exception {
    SearchResponse response = client().prepareSearch("idx").setTypes("high_card_type").addAggregation(terms("terms").executionHint(randomExecutionHint()).field(SINGLE_VALUED_FIELD_NAME).size(20).collectMode(randomFrom(SubAggCollectionMode.values())).order(// we need to sort by terms cause we're checking the first 20 values
    Terms.Order.term(true))).execute().actionGet();
    assertSearchResponse(response);
    Terms terms = response.getAggregations().get("terms");
    assertThat(terms, notNullValue());
    assertThat(terms.getName(), equalTo("terms"));
    assertThat(terms.getBuckets().size(), equalTo(20));
    for (int i = 0; i < 20; i++) {
        Terms.Bucket bucket = terms.getBucketByKey("val" + Strings.padStart(i + "", 3, '0'));
        assertThat(bucket, notNullValue());
        assertThat(key(bucket), equalTo("val" + Strings.padStart(i + "", 3, '0')));
        assertThat(bucket.getDocCount(), equalTo(1L));
    }
}
Also used : Bucket(org.elasticsearch.search.aggregations.bucket.terms.Terms.Bucket) Terms(org.elasticsearch.search.aggregations.bucket.terms.Terms) SearchResponse(org.elasticsearch.action.search.SearchResponse) ElasticsearchAssertions.assertSearchResponse(org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse)

Example 79 with Bucket

use of org.elasticsearch.search.aggregations.bucket.terms.Terms.Bucket in project elasticsearch by elastic.

the class DoubleTermsIT method testSingleValuedFieldOrderedBySingleValueSubAggregationAscWithSubTermsAgg.

public void testSingleValuedFieldOrderedBySingleValueSubAggregationAscWithSubTermsAgg() throws Exception {
    boolean asc = true;
    SearchResponse response = client().prepareSearch("idx").setTypes("type").addAggregation(terms("terms").field(SINGLE_VALUED_FIELD_NAME).collectMode(randomFrom(SubAggCollectionMode.values())).order(Terms.Order.aggregation("avg_i", asc)).subAggregation(avg("avg_i").field(SINGLE_VALUED_FIELD_NAME)).subAggregation(terms("subTerms").field(MULTI_VALUED_FIELD_NAME).collectMode(randomFrom(SubAggCollectionMode.values())))).execute().actionGet();
    assertSearchResponse(response);
    Terms terms = response.getAggregations().get("terms");
    assertThat(terms, notNullValue());
    assertThat(terms.getName(), equalTo("terms"));
    assertThat(terms.getBuckets().size(), equalTo(5));
    for (int i = 0; i < 5; i++) {
        Terms.Bucket bucket = terms.getBucketByKey("" + (double) i);
        assertThat(bucket, notNullValue());
        assertThat(key(bucket), equalTo("" + (double) i));
        assertThat(bucket.getDocCount(), equalTo(1L));
        Avg avg = bucket.getAggregations().get("avg_i");
        assertThat(avg, notNullValue());
        assertThat(avg.getValue(), equalTo((double) i));
        Terms subTermsAgg = bucket.getAggregations().get("subTerms");
        assertThat(subTermsAgg, notNullValue());
        assertThat(subTermsAgg.getBuckets().size(), equalTo(2));
        double j = i;
        for (Terms.Bucket subBucket : subTermsAgg.getBuckets()) {
            assertThat(subBucket, notNullValue());
            assertThat(key(subBucket), equalTo(String.valueOf(j)));
            assertThat(subBucket.getDocCount(), equalTo(1L));
            j++;
        }
    }
}
Also used : Bucket(org.elasticsearch.search.aggregations.bucket.terms.Terms.Bucket) Avg(org.elasticsearch.search.aggregations.metrics.avg.Avg) Terms(org.elasticsearch.search.aggregations.bucket.terms.Terms) SearchResponse(org.elasticsearch.action.search.SearchResponse) ElasticsearchAssertions.assertSearchResponse(org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse)

Example 80 with Bucket

use of org.elasticsearch.search.aggregations.bucket.terms.Terms.Bucket in project elasticsearch by elastic.

the class DoubleTermsIT method testSingleValuedFieldOrderedBySingleValueSubAggregationAsc.

public void testSingleValuedFieldOrderedBySingleValueSubAggregationAsc() throws Exception {
    boolean asc = true;
    SearchResponse response = client().prepareSearch("idx").setTypes("type").addAggregation(terms("terms").field(SINGLE_VALUED_FIELD_NAME).collectMode(randomFrom(SubAggCollectionMode.values())).order(Terms.Order.aggregation("avg_i", asc)).subAggregation(avg("avg_i").field(SINGLE_VALUED_FIELD_NAME))).execute().actionGet();
    assertSearchResponse(response);
    Terms terms = response.getAggregations().get("terms");
    assertThat(terms, notNullValue());
    assertThat(terms.getName(), equalTo("terms"));
    assertThat(terms.getBuckets().size(), equalTo(5));
    for (int i = 0; i < 5; i++) {
        Terms.Bucket bucket = terms.getBucketByKey("" + (double) i);
        assertThat(bucket, notNullValue());
        assertThat(key(bucket), equalTo("" + (double) i));
        assertThat(bucket.getDocCount(), equalTo(1L));
        Avg avg = bucket.getAggregations().get("avg_i");
        assertThat(avg, notNullValue());
        assertThat(avg.getValue(), equalTo((double) i));
    }
}
Also used : Bucket(org.elasticsearch.search.aggregations.bucket.terms.Terms.Bucket) Avg(org.elasticsearch.search.aggregations.metrics.avg.Avg) Terms(org.elasticsearch.search.aggregations.bucket.terms.Terms) SearchResponse(org.elasticsearch.action.search.SearchResponse) ElasticsearchAssertions.assertSearchResponse(org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse)

Aggregations

Bucket (org.elasticsearch.search.aggregations.bucket.terms.Terms.Bucket)89 Terms (org.elasticsearch.search.aggregations.bucket.terms.Terms)88 SearchResponse (org.elasticsearch.action.search.SearchResponse)84 ElasticsearchAssertions.assertSearchResponse (org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse)84 Script (org.elasticsearch.script.Script)18 Avg (org.elasticsearch.search.aggregations.metrics.avg.Avg)11 ExtendedStats (org.elasticsearch.search.aggregations.metrics.stats.extended.ExtendedStats)10 IncludeExclude (org.elasticsearch.search.aggregations.bucket.terms.support.IncludeExclude)7 AggregationBuilders.extendedStats (org.elasticsearch.search.aggregations.AggregationBuilders.extendedStats)6 Sampler (org.elasticsearch.search.aggregations.bucket.sampler.Sampler)6 Stats (org.elasticsearch.search.aggregations.metrics.stats.Stats)6 Sum (org.elasticsearch.search.aggregations.metrics.sum.Sum)5 Matchers.containsString (org.hamcrest.Matchers.containsString)5 Nested (org.elasticsearch.search.aggregations.bucket.nested.Nested)4 LongTerms (org.elasticsearch.search.aggregations.bucket.terms.LongTerms)4 HashSet (java.util.HashSet)3 Filter (org.elasticsearch.search.aggregations.bucket.filter.Filter)3 DiversifiedAggregationBuilder (org.elasticsearch.search.aggregations.bucket.sampler.DiversifiedAggregationBuilder)3 StringTerms (org.elasticsearch.search.aggregations.bucket.terms.StringTerms)3 ArrayList (java.util.ArrayList)2