Selaa lähdekoodia

fixed 自定义

zero 1 vuosi sitten
vanhempi
commit
117e392d26

+ 6 - 8
src/main/java/cn/cslg/pas/factorys/EsCountAnalyseBuilderFactory/ChildCountAnalysisBuilder.java

@@ -58,11 +58,10 @@ public class ChildCountAnalysisBuilder implements IEsCountAnalysisBuilder {
                             .gte(JsonData.of(valueOne)).lte(JsonData.of(valueTwo)));
                     queryList.add(query);
                 }
-                Aggregation filterAgg = AggregationBuilders.filter(n -> n.bool(k -> k.must(queryList)));
-                termAgg = new Aggregation.Builder().terms(new TermsAggregation.Builder()
-                        .field("custom_field.stats_value.raw").build())
+                Aggregation terms = AggregationBuilders.terms(i -> i.field("custom_field.stats_value.raw").size(topN));
+                termAgg = new Aggregation.Builder().filter(n -> n.bool(k -> k.must(queryList)))
                         .aggregations(new HashMap() {{
-                            put("filterAgg", filterAgg);
+                            put("filterAgg", terms);
                         }}).build();
             }
         } else {
@@ -80,11 +79,10 @@ public class ChildCountAnalysisBuilder implements IEsCountAnalysisBuilder {
                             .gte(JsonData.of(valueOne)).lte(JsonData.of(valueTwo)));
                     queryList.add(query);
                 }
-                Aggregation filterAgg = AggregationBuilders.filter(n -> n.bool(k -> k.must(queryList)));
-                termAgg = new Aggregation.Builder().terms(new TermsAggregation.Builder()
-                         .field("custom_field.field_value.raw").size(topN).build())
+                Aggregation terms = AggregationBuilders.terms(i -> i.field("custom_field.field_value.raw").size(topN));
+                termAgg = new Aggregation.Builder().filter(n -> n.bool(k -> k.must(queryList)))
                         .aggregations(new HashMap() {{
-                            put("filterAgg", filterAgg);
+                            put("filterAgg", terms);
                         }}).build();
             }
         }

+ 0 - 6
src/main/java/cn/cslg/pas/factorys/EsCountAnalyseBuilderFactory/ChildNestedAnalyseBuilder.java

@@ -33,12 +33,6 @@ public class ChildNestedAnalyseBuilder implements IEsCountAnalysisBuilder{
             String str = "*";
             String s = str.concat(valueOne).concat("*");
             Query query = QueryBuilders.wildcard(i -> i.field(field).value(s));
-//            Aggregation filter = AggregationBuilders.filter(n -> n.bool(k -> k.must(query,q1)));
-//            terms = new Aggregation.Builder().terms(new TermsAggregation.Builder()
-//                    .field(field).size(topN).build())
-//                    .aggregations(new HashMap() {{
-//                        put("filter_agg", filter);
-//                    }}).build();
             Aggregation aggregation = AggregationBuilders.terms(j -> j.field(field).size(topN));
             terms = new Aggregation.Builder().filter(i -> i.bool(j -> j.must(query,q1)))
                     .aggregations(new HashMap() {{

+ 9 - 13
src/main/java/cn/cslg/pas/service/business/es/EsCountService.java

@@ -716,20 +716,16 @@ public class EsCountService {
         List<StringTermsBucket> list = childAgg.sterms().buckets().array();
         list.forEach(bucket -> {
             Aggregate aggregate = bucket.aggregations().get("termAgg");
-            List<StringTermsBucket> termsBuckets = aggregate.sterms().buckets().array();
+            Aggregate filterAgg = aggregate.filter().aggregations().get("filterAgg");
+            List<StringTermsBucket> termsBuckets = filterAgg.sterms().buckets().array();
             termsBuckets.forEach(termsBucket -> {
-                Aggregate termAgg = termsBucket.aggregations().get("filterAgg");
-                long count = termAgg.filter().docCount();
-                if (count > 0) {
-                    EsCountDetailDTO dto = new EsCountDetailDTO();
-                    dto.setField(field);
-                    dto.setName(termsBucket.key().stringValue());
-                    dto.setNumber(termsBucket.docCount());
-                    dto.setNumber(count);
-                    dto.setTopN(topN);
-                    if (dto.getNumber() > 0) {
-                        detailDTOS.add(dto);
-                    }
+                EsCountDetailDTO dto = new EsCountDetailDTO();
+                dto.setField(field);
+                dto.setName(termsBucket.key().stringValue());
+                dto.setNumber(termsBucket.docCount());
+                dto.setTopN(topN);
+                if (dto.getNumber() > 0) {
+                    detailDTOS.add(dto);
                 }
             });
         });