Search in sources :

Example 51 with Bucket

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

the class TermsDocCountErrorIT method assertNoDocCountError.

private void assertNoDocCountError(int size, SearchResponse accurateResponse, SearchResponse testResponse) {
    Terms accurateTerms = accurateResponse.getAggregations().get("terms");
    assertThat(accurateTerms, notNullValue());
    assertThat(accurateTerms.getName(), equalTo("terms"));
    assertThat(accurateTerms.getDocCountError(), equalTo(0L));
    Terms testTerms = testResponse.getAggregations().get("terms");
    assertThat(testTerms, notNullValue());
    assertThat(testTerms.getName(), equalTo("terms"));
    assertThat(testTerms.getDocCountError(), equalTo(0L));
    Collection<Bucket> testBuckets = testTerms.getBuckets();
    assertThat(testBuckets.size(), lessThanOrEqualTo(size));
    assertThat(accurateTerms.getBuckets().size(), greaterThanOrEqualTo(testBuckets.size()));
    for (Terms.Bucket testBucket : testBuckets) {
        assertThat(testBucket, notNullValue());
        Terms.Bucket accurateBucket = accurateTerms.getBucketByKey(testBucket.getKeyAsString());
        assertThat(accurateBucket, notNullValue());
        assertThat(accurateBucket.getDocCountError(), equalTo(0L));
        assertThat(testBucket.getDocCountError(), equalTo(0L));
    }
}
Also used : Bucket(org.elasticsearch.search.aggregations.bucket.terms.Terms.Bucket) Bucket(org.elasticsearch.search.aggregations.bucket.terms.Terms.Bucket) Terms(org.elasticsearch.search.aggregations.bucket.terms.Terms)

Example 52 with Bucket

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

the class CrawlingInfoHelper method getSessionIdList.

public List<Map<String, String>> getSessionIdList(final FessEsClient fessEsClient) {
    final FessConfig fessConfig = ComponentUtil.getFessConfig();
    return fessEsClient.search(fessConfig.getIndexDocumentSearchIndex(), fessConfig.getIndexDocumentType(), queryRequestBuilder -> {
        queryRequestBuilder.setQuery(QueryBuilders.matchAllQuery());
        final TermsAggregationBuilder termsBuilder = AggregationBuilders.terms(fessConfig.getIndexFieldSegment()).field(fessConfig.getIndexFieldSegment()).size(maxSessionIdsInList).order(Order.term(false));
        queryRequestBuilder.addAggregation(termsBuilder);
        queryRequestBuilder.setPreference(Constants.SEARCH_PREFERENCE_PRIMARY);
        return true;
    }, (queryRequestBuilder, execTime, searchResponse) -> {
        final List<Map<String, String>> sessionIdList = new ArrayList<>();
        searchResponse.ifPresent(response -> {
            final Terms terms = response.getAggregations().get(fessConfig.getIndexFieldSegment());
            for (final Bucket bucket : terms.getBuckets()) {
                final Map<String, String> map = new HashMap<>(2);
                map.put(fessConfig.getIndexFieldSegment(), bucket.getKey().toString());
                map.put(FACET_COUNT_KEY, Long.toString(bucket.getDocCount()));
                sessionIdList.add(map);
            }
        });
        return sessionIdList;
    });
}
Also used : TermsAggregationBuilder(org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder) Bucket(org.elasticsearch.search.aggregations.bucket.terms.Terms.Bucket) HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap) ArrayList(java.util.ArrayList) Terms(org.elasticsearch.search.aggregations.bucket.terms.Terms) FessConfig(org.codelibs.fess.mylasta.direction.FessConfig) HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap) Map(java.util.Map)

Example 53 with Bucket

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

the class GeoBoundsIT method testSingleValuedFieldAsSubAggToHighCardTermsAgg.

/**
     * This test forces the {@link GeoBoundsAggregator} to resize the {@link BigArray}s it uses to ensure they are resized correctly
     */
public void testSingleValuedFieldAsSubAggToHighCardTermsAgg() {
    SearchResponse response = client().prepareSearch(HIGH_CARD_IDX_NAME).addAggregation(terms("terms").field(NUMBER_FIELD_NAME).subAggregation(geoBounds(aggName).field(SINGLE_VALUED_FIELD_NAME).wrapLongitude(false))).execute().actionGet();
    assertSearchResponse(response);
    Terms terms = response.getAggregations().get("terms");
    assertThat(terms, notNullValue());
    assertThat(terms.getName(), equalTo("terms"));
    List<Bucket> buckets = terms.getBuckets();
    assertThat(buckets.size(), equalTo(10));
    for (int i = 0; i < 10; i++) {
        Bucket bucket = buckets.get(i);
        assertThat(bucket, notNullValue());
        assertThat("InternalBucket " + bucket.getKey() + " has wrong number of documents", bucket.getDocCount(), equalTo(1L));
        GeoBounds geoBounds = bucket.getAggregations().get(aggName);
        assertThat(geoBounds, notNullValue());
        assertThat(geoBounds.getName(), equalTo(aggName));
        assertThat(geoBounds.topLeft().getLat(), allOf(greaterThanOrEqualTo(-90.0), lessThanOrEqualTo(90.0)));
        assertThat(geoBounds.topLeft().getLon(), allOf(greaterThanOrEqualTo(-180.0), lessThanOrEqualTo(180.0)));
        assertThat(geoBounds.bottomRight().getLat(), allOf(greaterThanOrEqualTo(-90.0), lessThanOrEqualTo(90.0)));
        assertThat(geoBounds.bottomRight().getLon(), allOf(greaterThanOrEqualTo(-180.0), lessThanOrEqualTo(180.0)));
    }
}
Also used : Bucket(org.elasticsearch.search.aggregations.bucket.terms.Terms.Bucket) Terms(org.elasticsearch.search.aggregations.bucket.terms.Terms) GeoPoint(org.elasticsearch.common.geo.GeoPoint) GeoBounds(org.elasticsearch.search.aggregations.metrics.geobounds.GeoBounds) SearchResponse(org.elasticsearch.action.search.SearchResponse) ElasticsearchAssertions.assertSearchResponse(org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse)

Example 54 with Bucket

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

the class TermsDocCountErrorIT method assertNoDocCountErrorSingleResponse.

private void assertNoDocCountErrorSingleResponse(int size, SearchResponse testResponse) {
    Terms testTerms = testResponse.getAggregations().get("terms");
    assertThat(testTerms, notNullValue());
    assertThat(testTerms.getName(), equalTo("terms"));
    assertThat(testTerms.getDocCountError(), equalTo(0L));
    Collection<Bucket> testBuckets = testTerms.getBuckets();
    assertThat(testBuckets.size(), lessThanOrEqualTo(size));
    for (Terms.Bucket testBucket : testBuckets) {
        assertThat(testBucket, notNullValue());
        assertThat(testBucket.getDocCountError(), equalTo(0L));
    }
}
Also used : Bucket(org.elasticsearch.search.aggregations.bucket.terms.Terms.Bucket) Bucket(org.elasticsearch.search.aggregations.bucket.terms.Terms.Bucket) Terms(org.elasticsearch.search.aggregations.bucket.terms.Terms)

Example 55 with Bucket

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

the class StringTermsIT method testMultiValuedFieldWithValueScript.

public void testMultiValuedFieldWithValueScript() throws Exception {
    SearchResponse response = client().prepareSearch("idx").setTypes("type").addAggregation(terms("terms").executionHint(randomExecutionHint()).field(MULTI_VALUED_FIELD_NAME).collectMode(randomFrom(SubAggCollectionMode.values())).script(new Script(ScriptType.INLINE, CustomScriptPlugin.NAME, "'foo_' + _value", Collections.emptyMap()))).get();
    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("foo_val" + i);
        assertThat(bucket, notNullValue());
        assertThat(key(bucket), equalTo("foo_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) 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)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