private OptionalLong getMinCreatedAt(Map<String, QueryBuilder> filters, QueryBuilder esQuery) { String facetNameAndField = CREATED_AT.getFieldName(); SearchRequestBuilder esRequest = client .prepareSearch(INDEX_TYPE_ISSUE) .setSize(0); BoolQueryBuilder esFilter = boolQuery(); filters.values().stream().filter(Objects::nonNull).forEach(esFilter::must); if (esFilter.hasClauses()) { esRequest.setQuery(QueryBuilders.boolQuery().must(esQuery).filter(esFilter)); } else { esRequest.setQuery(esQuery); } esRequest.addAggregation(AggregationBuilders.min(facetNameAndField).field(facetNameAndField)); Min minValue = esRequest.get().getAggregations().get(facetNameAndField); double actualValue = minValue.getValue(); if (Double.isInfinite(actualValue)) { return OptionalLong.empty(); } return OptionalLong.of((long)actualValue); }
.subAggregation(AggregationBuilders.min("ts_min").field(Message.FIELD_TIMESTAMP)) .subAggregation(AggregationBuilders.max("ts_max").field(Message.FIELD_TIMESTAMP)) .subAggregation(AggregationBuilders.terms("streams").field(Message.FIELD_STREAMS));
return addFieldToAgg(field, builder); case "MIN": builder = AggregationBuilders.min(field.getAlias()); return addFieldToAgg(field, builder); case "AVG":
aggregationBuilder = AggregationBuilders.min(function.toParsedText()).field(jPAColumnName); break; case Expression.MAX:
private AbstractAggregationBuilder parseStatsAggregation(SQLAggregateExpr aggExpr, String fieldName) { ElasticSqlMethodInvokeHelper.checkStatAggMethod(aggExpr); String methodName = aggExpr.getMethodName(); if (ElasticSqlMethodInvokeHelper.AGG_MIN_METHOD.equalsIgnoreCase(methodName)) { return AggregationBuilders.min(String.format("%s_%s", ElasticSqlMethodInvokeHelper.AGG_MIN_METHOD, fieldName)).field(fieldName); } if (ElasticSqlMethodInvokeHelper.AGG_MAX_METHOD.equalsIgnoreCase(methodName)) { return AggregationBuilders.max(String.format("%s_%s", ElasticSqlMethodInvokeHelper.AGG_MAX_METHOD, fieldName)).field(fieldName); } if (ElasticSqlMethodInvokeHelper.AGG_AVG_METHOD.equalsIgnoreCase(methodName)) { return AggregationBuilders.avg(String.format("%s_%s", ElasticSqlMethodInvokeHelper.AGG_AVG_METHOD, fieldName)).field(fieldName); } if (ElasticSqlMethodInvokeHelper.AGG_SUM_METHOD.equalsIgnoreCase(methodName)) { return AggregationBuilders.sum(String.format("%s_%s", ElasticSqlMethodInvokeHelper.AGG_SUM_METHOD, fieldName)).field(fieldName); } throw new ElasticSql2DslException(String.format("[syntax error] UnSupport agg method call[%s]", methodName)); } }
private Optional<Long> getMinCreatedAt(Map<String, QueryBuilder> filters, QueryBuilder esQuery) { String facetNameAndField = IssueIndexDefinition.FIELD_ISSUE_FUNC_CREATED_AT; SearchRequestBuilder esRequest = client .prepareSearch(INDEX_TYPE_ISSUE) .setSize(0); BoolQueryBuilder esFilter = boolQuery(); filters.values().stream().filter(Objects::nonNull).forEach(esFilter::must); if (esFilter.hasClauses()) { esRequest.setQuery(QueryBuilders.boolQuery().must(esQuery).filter(esFilter)); } else { esRequest.setQuery(esQuery); } esRequest.addAggregation(AggregationBuilders.min(facetNameAndField).field(facetNameAndField)); Min minValue = esRequest.get().getAggregations().get(facetNameAndField); Double actualValue = minValue.getValue(); if (actualValue.isInfinite()) { return Optional.empty(); } return Optional.of(actualValue.longValue()); }
private Map<String, Double> getFieldBoundaries(){ SearchRequestBuilder boundsRequest = this.client.prepareSearch(this.index) .setTypes("datum") .setSearchType(SearchType.COUNT) .addAggregation( AggregationBuilders.min("minX").field(this.xField) ).addAggregation( AggregationBuilders.min("minY").field(this.yField) ).addAggregation( AggregationBuilders.max("maxX").field(this.xField) ).addAggregation( AggregationBuilders.max("maxY").field(this.yField) ); SearchResponse searchResponse = boundsRequest.execute().actionGet(); Aggregations aggregations = searchResponse.getAggregations(); Min minX = aggregations.get("minX"); Min minY = aggregations.get("minY"); Max maxX = aggregations.get("maxX"); Max maxY = aggregations.get("maxY"); Map<String, Double> boundsMap = new HashMap<>(); boundsMap.put("minX", minX.getValue()); boundsMap.put("minY", minY.getValue()); boundsMap.put("maxX", maxX.getValue()); boundsMap.put("maxY", maxY.getValue()); return boundsMap; }
final FilterAggregationBuilder builder = AggregationBuilders.filter("agg") .filter(QueryBuilders.existsQuery(Message.FIELD_TIMESTAMP)) .subAggregation(AggregationBuilders.min("ts_min").field(Message.FIELD_TIMESTAMP)) .subAggregation(AggregationBuilders.max("ts_max").field(Message.FIELD_TIMESTAMP)) .subAggregation(AggregationBuilders.terms("streams").field(Message.FIELD_STREAMS));
agg = AggregationBuilders.max(metric.getAggName()); } else if(metric.getOp() == Operation.MIN) { agg = AggregationBuilders.min(metric.getAggName()); } else if(metric.getOp() == Operation.SUM) { agg = AggregationBuilders.sum(metric.getAggName());
MinAggregationBuilder minBuilder = AggregationBuilders.min( "top_hit").field(totalSortField); aggregations.subAggregation(minBuilder);
/** * Creates an AggregationBuilder for the supplied type */ public AggregationBuilder toBuilder(String type) { switch (type) { case AGG_CARDINALITY: return AggregationBuilders.cardinality(getId()).field(getField()); case AGG_COUNT: return AggregationBuilders.count(getId()).field(getField()); case AGG_SUM: return AggregationBuilders.sum(getId()).field(getField()); case AGG_AVG: return AggregationBuilders.avg(getId()).field(getField()); case AGG_MAX: return AggregationBuilders.max(getId()).field(getField()); case AGG_MIN: return AggregationBuilders.min(getId()).field(getField()); default: throw new IllegalArgumentException("Unknown aggregate type: " + type); } }
return addFieldToAgg(field, builder); case "MIN": builder = AggregationBuilders.min(field.getAlias()); return addFieldToAgg(field, builder); case "AVG":
AggregationBuilders.terms("traceId_agg") .field("traceId") .subAggregation(AggregationBuilders.min("timestamps_agg") .field("timestamp_millis")) .order(Order.aggregation("timestamps_agg", false))
aggregationBuilder = AggregationBuilders.min(function.toParsedText()).field(jPAColumnName); break; case Expression.MAX: