Search in sources :

Example 11 with Max

use of org.elasticsearch.search.aggregations.metrics.max.Max in project elasticsearch by elastic.

the class TopHitsIT method testSortByBucket.

public void testSortByBucket() throws Exception {
    SearchResponse response = client().prepareSearch("idx").setTypes("type").addAggregation(terms("terms").executionHint(randomExecutionHint()).field(TERMS_AGGS_FIELD).order(Terms.Order.aggregation("max_sort", false)).subAggregation(topHits("hits").sort(SortBuilders.fieldSort(SORT_FIELD).order(SortOrder.DESC)).trackScores(true)).subAggregation(max("max_sort").field(SORT_FIELD))).get();
    assertSearchResponse(response);
    Terms terms = response.getAggregations().get("terms");
    assertThat(terms, notNullValue());
    assertThat(terms.getName(), equalTo("terms"));
    assertThat(terms.getBuckets().size(), equalTo(5));
    long higestSortValue = 50;
    int currentBucket = 4;
    for (Terms.Bucket bucket : terms.getBuckets()) {
        assertThat(key(bucket), equalTo("val" + currentBucket--));
        assertThat(bucket.getDocCount(), equalTo(10L));
        TopHits topHits = bucket.getAggregations().get("hits");
        SearchHits hits = topHits.getHits();
        assertThat(hits.getTotalHits(), equalTo(10L));
        assertThat(hits.getHits().length, equalTo(3));
        assertThat((Long) hits.getAt(0).getSortValues()[0], equalTo(higestSortValue));
        assertThat((Long) hits.getAt(1).getSortValues()[0], equalTo(higestSortValue - 1));
        assertThat((Long) hits.getAt(2).getSortValues()[0], equalTo(higestSortValue - 2));
        Max max = bucket.getAggregations().get("max_sort");
        assertThat(max.getValue(), equalTo(((Long) higestSortValue).doubleValue()));
        higestSortValue -= 10;
    }
}
Also used : TopHits(org.elasticsearch.search.aggregations.metrics.tophits.TopHits) Max(org.elasticsearch.search.aggregations.metrics.max.Max) Terms(org.elasticsearch.search.aggregations.bucket.terms.Terms) SearchHits(org.elasticsearch.search.SearchHits) SearchResponse(org.elasticsearch.action.search.SearchResponse) ElasticsearchAssertions.assertSearchResponse(org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse)

Example 12 with Max

use of org.elasticsearch.search.aggregations.metrics.max.Max in project elasticsearch by elastic.

the class MaxIT method testScriptMultiValued.

@Override
public void testScriptMultiValued() throws Exception {
    SearchResponse searchResponse = client().prepareSearch("idx").setQuery(matchAllQuery()).addAggregation(max("max").script(new Script(ScriptType.INLINE, AggregationTestScriptsPlugin.NAME, "doc['values'].values", Collections.emptyMap()))).get();
    assertHitCount(searchResponse, 10);
    Max max = searchResponse.getAggregations().get("max");
    assertThat(max, notNullValue());
    assertThat(max.getName(), equalTo("max"));
    assertThat(max.getValue(), equalTo(12.0));
}
Also used : Script(org.elasticsearch.script.Script) Max(org.elasticsearch.search.aggregations.metrics.max.Max) SearchResponse(org.elasticsearch.action.search.SearchResponse) ElasticsearchAssertions.assertSearchResponse(org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse)

Example 13 with Max

use of org.elasticsearch.search.aggregations.metrics.max.Max in project elasticsearch by elastic.

the class MaxIT method testScriptSingleValuedWithParams.

@Override
public void testScriptSingleValuedWithParams() throws Exception {
    Map<String, Object> params = new HashMap<>();
    params.put("inc", 1);
    Script script = new Script(ScriptType.INLINE, AggregationTestScriptsPlugin.NAME, "doc['value'].value + inc", params);
    SearchResponse searchResponse = client().prepareSearch("idx").setQuery(matchAllQuery()).addAggregation(max("max").script(script)).get();
    assertHitCount(searchResponse, 10);
    Max max = searchResponse.getAggregations().get("max");
    assertThat(max, notNullValue());
    assertThat(max.getName(), equalTo("max"));
    assertThat(max.getValue(), equalTo(11.0));
}
Also used : Script(org.elasticsearch.script.Script) HashMap(java.util.HashMap) Max(org.elasticsearch.search.aggregations.metrics.max.Max) SearchResponse(org.elasticsearch.action.search.SearchResponse) ElasticsearchAssertions.assertSearchResponse(org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse)

Example 14 with Max

use of org.elasticsearch.search.aggregations.metrics.max.Max in project elasticsearch by elastic.

the class MaxIT method testSingleValuedFieldPartiallyUnmapped.

@Override
public void testSingleValuedFieldPartiallyUnmapped() throws Exception {
    SearchResponse searchResponse = client().prepareSearch("idx", "idx_unmapped").setQuery(matchAllQuery()).addAggregation(max("max").field("value")).execute().actionGet();
    assertHitCount(searchResponse, 10);
    Max max = searchResponse.getAggregations().get("max");
    assertThat(max, notNullValue());
    assertThat(max.getName(), equalTo("max"));
    assertThat(max.getValue(), equalTo(10.0));
}
Also used : Max(org.elasticsearch.search.aggregations.metrics.max.Max) SearchResponse(org.elasticsearch.action.search.SearchResponse) ElasticsearchAssertions.assertSearchResponse(org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse)

Example 15 with Max

use of org.elasticsearch.search.aggregations.metrics.max.Max in project elasticsearch by elastic.

the class MaxIT method testUnmapped.

@Override
public void testUnmapped() throws Exception {
    SearchResponse searchResponse = client().prepareSearch("idx_unmapped").setQuery(matchAllQuery()).addAggregation(max("max").field("value")).execute().actionGet();
    assertThat(searchResponse.getHits().getTotalHits(), equalTo(0L));
    Max max = searchResponse.getAggregations().get("max");
    assertThat(max, notNullValue());
    assertThat(max.getName(), equalTo("max"));
    assertThat(max.getValue(), equalTo(Double.NEGATIVE_INFINITY));
}
Also used : Max(org.elasticsearch.search.aggregations.metrics.max.Max) SearchResponse(org.elasticsearch.action.search.SearchResponse) ElasticsearchAssertions.assertSearchResponse(org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse)

Aggregations

Max (org.elasticsearch.search.aggregations.metrics.max.Max)25 SearchResponse (org.elasticsearch.action.search.SearchResponse)24 ElasticsearchAssertions.assertSearchResponse (org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse)23 Script (org.elasticsearch.script.Script)8 Terms (org.elasticsearch.search.aggregations.bucket.terms.Terms)7 Filter (org.elasticsearch.search.aggregations.bucket.filter.Filter)5 HashMap (java.util.HashMap)4 Bucket (org.elasticsearch.search.aggregations.bucket.terms.Terms.Bucket)4 SearchRequestBuilder (org.elasticsearch.action.search.SearchRequestBuilder)2 Histogram (org.elasticsearch.search.aggregations.bucket.histogram.Histogram)2 Sampler (org.elasticsearch.search.aggregations.bucket.sampler.Sampler)2 LongHashSet (com.carrotsearch.hppc.LongHashSet)1 ImmutableList (com.google.common.collect.ImmutableList)1 IOException (java.io.IOException)1 ArrayList (java.util.ArrayList)1 ElasticsearchException (org.elasticsearch.ElasticsearchException)1 SearchRequest (org.elasticsearch.action.search.SearchRequest)1 IndexClosedException (org.elasticsearch.indices.IndexClosedException)1 SearchHits (org.elasticsearch.search.SearchHits)1 FilterAggregationBuilder (org.elasticsearch.search.aggregations.bucket.filter.FilterAggregationBuilder)1