|
@@ -4,6 +4,7 @@ import co.elastic.clients.elasticsearch._types.SortOrder;
|
|
|
import co.elastic.clients.elasticsearch._types.aggregations.*;
|
|
|
import co.elastic.clients.elasticsearch._types.query_dsl.Query;
|
|
|
import co.elastic.clients.elasticsearch._types.query_dsl.QueryBuilders;
|
|
|
+import co.elastic.clients.json.JsonData;
|
|
|
import co.elastic.clients.util.NamedValue;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.stereotype.Component;
|
|
@@ -35,12 +36,17 @@ public class DateCountAnalyssBuilder implements IEsCountAnalysisBuilder {
|
|
|
Aggregation aggregation = null;
|
|
|
// NamedValue<SortOrder> orderNamedValue = NamedValue.of(field, SortOrder.Desc);
|
|
|
if (StringUtils.isNotEmpty(valueOne) && StringUtils.isNotEmpty(valueTwo)) {
|
|
|
+ SimpleDateFormat format = new SimpleDateFormat("yyyy");
|
|
|
+ Date beginDate = format.parse(valueOne);
|
|
|
+ long beginTime = beginDate.getTime();
|
|
|
String end = String.valueOf(Integer.parseInt(valueTwo) + 1);
|
|
|
- Query query = QueryBuilders.range(j -> j.field(field).from(valueOne).to(end).format("yyyy"));
|
|
|
+ Date endDate = format.parse(end);
|
|
|
+ long endTime = endDate.getTime();
|
|
|
+ Query query = QueryBuilders.range(j -> j.field(field).gte(JsonData.of(beginTime)).lt(JsonData.of(endTime)));
|
|
|
Aggregation filter = AggregationBuilders.filter(n -> n.bool(k -> k.must(query)));
|
|
|
aggregation = new Aggregation.Builder().dateHistogram(new DateHistogramAggregation.Builder()
|
|
|
.field(field).format("yyyy")
|
|
|
- .calendarInterval(CalendarInterval.Year).timeZone("+01:00").build())
|
|
|
+ .calendarInterval(CalendarInterval.Year).timeZone("+08:00").build())
|
|
|
.aggregations(new HashMap() {{
|
|
|
put("filter_agg", filter);
|
|
|
}}).build();
|