public static String getAggregateFilterId(Aggregate agg) { return agg.getId() + AGG_FILTER_SUFFIX; }
@SuppressWarnings("rawtypes") @Override public void resetPageProviderAggregates() { if (pageProvider != null && pageProvider.hasAggregateSupport()) { Map<String, ? extends Aggregate> aggs = pageProvider.getAggregates(); for (Aggregate agg : aggs.values()) { agg.resetSelection(); } } }
protected void writeEntityBody(Aggregate agg, JsonGenerator jg) throws IOException { boolean fetch = ctx.getFetched(ENTITY_TYPE).contains(FETCH_KEY); String fieldName = agg.getField(); Field field; if (fieldName.startsWith("ecm:")) { jg.writeObjectField("id", agg.getId()); jg.writeObjectField("field", agg.getField()); jg.writeObjectField("properties", agg.getProperties()); jg.writeObjectField("ranges", agg.getRanges()); jg.writeObjectField("selection", agg.getSelection()); jg.writeObjectField("type", agg.getType()); if (agg instanceof SingleValueMetricAggregate) { Double val = ((SingleValueMetricAggregate) agg).getValue(); jg.writeObjectField("value", ((SingleBucketAggregate) agg).getDocCount()); } else if (!fetch || !(agg instanceof TermAggregate || agg instanceof SignificantTermAggregate)) { jg.writeObjectField("buckets", agg.getBuckets()); jg.writeObjectField("extendedBuckets", agg.getExtendedBuckets()); } else { if (field != null) { writeBuckets("buckets", agg.getBuckets(), field, jg); writeBuckets("extendedBuckets", agg.getExtendedBuckets(), field, jg); log.warn(String.format("Could not resolve field %s for aggregate %s", fieldName, agg.getId())); jg.writeObjectField("buckets", agg.getBuckets()); jg.writeObjectField("extendedBuckets", agg.getExtendedBuckets());
Map<String, Aggregate<? extends Bucket>> aggregates = provider.getAggregates(); for (Aggregate<? extends Bucket> aggregate : aggregates.values()) { if (namedParameters.containsKey(aggregate.getId())) { JsonNode node = OBJECT_MAPPER.readTree(namedParameters.get(aggregate.getId())); .collect(Collectors.toList()); String aggClause = aggregate.getBuckets() .stream() .filter(bucket -> keys.contains(bucket.getKey())) .map(bucket -> getClauseFromBucket(bucket, aggregate.getField())) .collect(Collectors.joining(" OR ")); if (StringUtils.isNotEmpty(aggClause)) {
/** * Extends the default implementation to add results of aggregates * * @since 7.4 */ @Override protected void incorporateAggregates(Map<String, Serializable> eventProps) { super.incorporateAggregates(eventProps); if (currentAggregates != null) { HashMap<String, Serializable> aggregateMatches = new HashMap<>(); for (String key : currentAggregates.keySet()) { Aggregate<? extends Bucket> ag = currentAggregates.get(key); ArrayList<HashMap<String, Serializable>> buckets = new ArrayList<>(); for (Bucket bucket : ag.getBuckets()) { HashMap<String, Serializable> b = new HashMap<>(); b.put("key", bucket.getKey()); b.put("count", bucket.getDocCount()); buckets.add(b); } aggregateMatches.put(key, buckets); } eventProps.put("aggregatesMatches", aggregateMatches); } }
currentAggregates = new HashMap<>(ret.getAggregates().size()); for (Aggregate<Bucket> agg : ret.getAggregates()) { currentAggregates.put(agg.getId(), agg);
currentAggregates = new HashMap<>(ret.getAggregates().size()); for (Aggregate<Bucket> agg : ret.getAggregates()) { currentAggregates.put(agg.getId(), agg);