zero před 1 rokem
rodič
revize
9e88b33807

+ 8 - 2
src/main/java/cn/cslg/pas/factorys/EsCountAnalyseBuilderFactory/DateCountAnalyssBuilder.java

@@ -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();