/** * 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 #addRange(String, Object, Object)} but the key will be * automatically generated based on <code>from</code> and <code>to</code>. */ public DateRangeBuilder addRange(Object from, Object to) { return addRange(null, from, to); }
dateRangeBuilder.addRange(range.getKey(), range.getFrom(), range.getTo());
dateRangeBuilder.addRange(range.getKey(), range.getFrom(), range.getTo());