Search in sources :

Example 41 with Bucket

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

the class StringTermsIT method testMultiValuedField.

public void testMultiValuedField() throws Exception {
    SearchResponse response = client().prepareSearch("idx").setTypes("type").addAggregation(terms("terms").executionHint(randomExecutionHint()).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(6));
    for (int i = 0; i < 6; i++) {
        Terms.Bucket bucket = terms.getBucketByKey("val" + i);
        assertThat(bucket, notNullValue());
        assertThat(key(bucket), equalTo("val" + i));
        if (i == 0 || i == 5) {
            assertThat(bucket.getDocCount(), equalTo(1L));
        } else {
            assertThat(bucket.getDocCount(), equalTo(2L));
        }
    }
}
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 42 with Bucket

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

the class StringTermsIT method assertMultiSortResponse.

private void assertMultiSortResponse(String[] expectedKeys, Terms.Order... order) {
    SearchResponse response = client().prepareSearch("sort_idx").setTypes("multi_sort_type").addAggregation(terms("terms").executionHint(randomExecutionHint()).field(SINGLE_VALUED_FIELD_NAME).collectMode(randomFrom(SubAggCollectionMode.values())).order(Terms.Order.compound(order)).subAggregation(avg("avg_l").field("l")).subAggregation(sum("sum_d").field("d"))).execute().actionGet();
    assertSearchResponse(response);
    Terms terms = response.getAggregations().get("terms");
    assertThat(terms, notNullValue());
    assertThat(terms.getName(), equalTo("terms"));
    assertThat(terms.getBuckets().size(), equalTo(expectedKeys.length));
    int i = 0;
    for (Terms.Bucket bucket : terms.getBuckets()) {
        assertThat(bucket, notNullValue());
        assertThat(key(bucket), equalTo(expectedKeys[i]));
        assertThat(bucket.getDocCount(), equalTo(expectedMultiSortBuckets.get(expectedKeys[i]).get("_count")));
        Avg avg = bucket.getAggregations().get("avg_l");
        assertThat(avg, notNullValue());
        assertThat(avg.getValue(), equalTo(expectedMultiSortBuckets.get(expectedKeys[i]).get("avg_l")));
        Sum sum = bucket.getAggregations().get("sum_d");
        assertThat(sum, notNullValue());
        assertThat(sum.getValue(), equalTo(expectedMultiSortBuckets.get(expectedKeys[i]).get("sum_d")));
        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) Sum(org.elasticsearch.search.aggregations.metrics.sum.Sum) SearchResponse(org.elasticsearch.action.search.SearchResponse) ElasticsearchAssertions.assertSearchResponse(org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse)

Example 43 with Bucket

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

the class StringTermsIT method testIndexMetaField.

public void testIndexMetaField() throws Exception {
    SearchResponse response = client().prepareSearch("idx", "empty_bucket_idx").setTypes("type").addAggregation(terms("terms").collectMode(randomFrom(SubAggCollectionMode.values())).executionHint(randomExecutionHint()).field(IndexFieldMapper.NAME)).execute().actionGet();
    assertSearchResponse(response);
    Terms terms = response.getAggregations().get("terms");
    assertThat(terms, notNullValue());
    assertThat(terms.getName(), equalTo("terms"));
    assertThat(terms.getBuckets().size(), equalTo(2));
    int i = 0;
    for (Terms.Bucket bucket : terms.getBuckets()) {
        assertThat(bucket, notNullValue());
        assertThat(key(bucket), equalTo(i == 0 ? "idx" : "empty_bucket_idx"));
        assertThat(bucket.getDocCount(), equalTo(i == 0 ? 5L : 2L));
        i++;
    }
}
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 44 with Bucket

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

the class StringTermsIT method testSingleValuedFieldOrderedBySingleValueSubAggregationDesc.

public void testSingleValuedFieldOrderedBySingleValueSubAggregationDesc() throws Exception {
    boolean asc = false;
    SearchResponse response = client().prepareSearch("idx").setTypes("type").addAggregation(terms("terms").executionHint(randomExecutionHint()).field(SINGLE_VALUED_FIELD_NAME).collectMode(randomFrom(SubAggCollectionMode.values())).order(Terms.Order.aggregation("avg_i", asc)).subAggregation(avg("avg_i").field("i"))).execute().actionGet();
    assertSearchResponse(response);
    Terms terms = response.getAggregations().get("terms");
    assertThat(terms, notNullValue());
    assertThat(terms.getName(), equalTo("terms"));
    assertThat(terms.getBuckets().size(), equalTo(5));
    int i = 4;
    for (Terms.Bucket bucket : terms.getBuckets()) {
        assertThat(bucket, notNullValue());
        assertThat(key(bucket), equalTo("val" + i));
        assertThat(bucket.getDocCount(), equalTo(1L));
        Avg avg = bucket.getAggregations().get("avg_i");
        assertThat(avg, notNullValue());
        assertThat(avg.getValue(), equalTo((double) i));
        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)

Example 45 with Bucket

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

the class StringTermsIT method testScriptSingleValue.

/*
     *
     * [foo_val0, foo_val1] [foo_val1, foo_val2] [foo_val2, foo_val3] [foo_val3,
     * foo_val4] [foo_val4, foo_val5]
     *
     *
     * foo_val0 - doc_count: 1 - val_count: 2 foo_val1 - doc_count: 2 -
     * val_count: 4 foo_val2 - doc_count: 2 - val_count: 4 foo_val3 - doc_count:
     * 2 - val_count: 4 foo_val4 - doc_count: 2 - val_count: 4 foo_val5 -
     * doc_count: 1 - val_count: 2
     */
public void testScriptSingleValue() 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)

Aggregations

Bucket (org.elasticsearch.search.aggregations.bucket.terms.Terms.Bucket)90 Terms (org.elasticsearch.search.aggregations.bucket.terms.Terms)89 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)6 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 ArrayList (java.util.ArrayList)3 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