/** * Get AggregationBuilder using dateRange with proper limits from parameters. * @param fieldName Name of field to time restrict * @param fromDate Start date for restriction * @param toDate End date for restriction * @return AggregationBuilder with required configuration */ private static DateRangeBuilder getDateRangeAggregationBuilder(String fieldName, String fromDate, String toDate) { DateRangeBuilder dateRangeAggregation = AggregationBuilders.dateRange("by_date").field(fieldName); if (fromDate == null && toDate != null) { dateRangeAggregation = dateRangeAggregation.addUnboundedTo(toDate); } else if (toDate == null && fromDate != null) { dateRangeAggregation = dateRangeAggregation.addUnboundedFrom(fromDate); } else { dateRangeAggregation = dateRangeAggregation.addRange(fromDate, toDate); } return dateRangeAggregation; }
/** * Same as {@link #addUnboundedTo(String, Object)} but the key will be * computed automatically. */ public DateRangeBuilder addUnboundedTo(Object to) { return addUnboundedTo(null, to); }