org.elasticsearch.search.aggregations.AggregationBuilders.range()方法的使用及代码示例

x33g5p2x  于2022-01-16 转载在 其他  
字(6.3k)|赞(0)|评价(0)|浏览(296)

本文整理了Java中org.elasticsearch.search.aggregations.AggregationBuilders.range()方法的一些代码示例,展示了AggregationBuilders.range()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。AggregationBuilders.range()方法的具体详情如下:
包路径:org.elasticsearch.search.aggregations.AggregationBuilders
类名称:AggregationBuilders
方法名:range

AggregationBuilders.range介绍

[英]Create a new Range aggregation with the given name.
[中]使用给定名称创建新的范围聚合。

代码示例

代码示例来源:origin: NLPchina/elasticsearch-sql

/**
 * 构建范围查询
 *
 * @param field
 * @return
 */
private RangeAggregationBuilder rangeBuilder(MethodField field) {
  // ignore alias param
  LinkedList<KVValue> params = field.getParams().stream().filter(kv -> !"alias".equals(kv.key)).collect(Collectors.toCollection(LinkedList::new));
  String fieldName = params.poll().toString();
  double[] ds = Util.KV2DoubleArr(params);
  RangeAggregationBuilder range = AggregationBuilders.range(field.getAlias()).field(fieldName);
  for (int i = 1; i < ds.length; i++) {
    range.addRange(ds[i - 1], ds[i]);
  }
  return range;
}

代码示例来源:origin: SonarSource/sonarqube

private static AbstractAggregationBuilder createRangeFacet(String metricKey, Double... thresholds) {
 RangeAggregationBuilder rangeAgg = AggregationBuilders.range(metricKey)
  .field(FIELD_MEASURES_VALUE);
 final int lastIndex = thresholds.length - 1;
 IntStream.range(0, thresholds.length)
  .forEach(i -> {
   if (i == 0) {
    rangeAgg.addUnboundedTo(thresholds[0]);
    rangeAgg.addRange(thresholds[0], thresholds[1]);
   } else if (i == lastIndex) {
    rangeAgg.addUnboundedFrom(thresholds[lastIndex]);
   } else {
    rangeAgg.addRange(thresholds[i], thresholds[i + 1]);
   }
  });
 return AggregationBuilders.nested("nested_" + metricKey, FIELD_MEASURES)
  .subAggregation(
   AggregationBuilders.filter("filter_" + metricKey, termsQuery(FIELD_MEASURES_KEY, metricKey))
    .subAggregation(rangeAgg));
}

代码示例来源:origin: spring-projects/spring-data-elasticsearch

@Override
public AbstractAggregationBuilder getFacet() {
  Assert.notNull(getName(), "Facet name can't be a null !!!");
  RangeAggregationBuilder rangeBuilder = AggregationBuilders.range(getName());
  final String field = !StringUtils.isEmpty(keyField) ? keyField : this.field;
  rangeBuilder.field(field);
  for (Entry entry : entries) {
    DoubleEntry doubleEntry = (DoubleEntry) entry;
    rangeBuilder.addRange(validateValue(doubleEntry.getFrom(), Double.NEGATIVE_INFINITY), validateValue(doubleEntry.getTo(), Double.POSITIVE_INFINITY));
  }
  rangeBuilder.subAggregation(AggregationBuilders.extendedStats(INTERNAL_STATS).field(field));
  if(!StringUtils.isEmpty(valueField)){
    rangeBuilder.subAggregation(AggregationBuilders.sum(RANGE_INTERNAL_SUM).field(valueField));
  }
  return rangeBuilder;
}

代码示例来源:origin: org.nlpcn/elasticsearch-sql

/**
 * 构建范围查询
 *
 * @param field
 * @return
 */
private RangeAggregationBuilder rangeBuilder(MethodField field) {
  // ignore alias param
  LinkedList<KVValue> params = field.getParams().stream().filter(kv -> !"alias".equals(kv.key)).collect(Collectors.toCollection(LinkedList::new));
  String fieldName = params.poll().toString();
  double[] ds = Util.KV2DoubleArr(params);
  RangeAggregationBuilder range = AggregationBuilders.range(field.getAlias()).field(fieldName);
  for (int i = 1; i < ds.length; i++) {
    range.addRange(ds[i - 1], ds[i]);
  }
  return range;
}

代码示例来源:origin: gitchennan/elasticsearch-query-toolkit

private AbstractRangeBuilder createRangeBuilder(String rangeFieldName, List<RangeSegment> rangeSegments) {
  AbstractRangeBuilder rangeBuilder = null;
  RangeSegment.SegmentType segType = rangeSegments.get(0).getSegmentType();
  if (segType == RangeSegment.SegmentType.Numeric) {
    RangeAggregationBuilder numericRangeBuilder = AggregationBuilders.range(AGG_BUCKET_KEY_PREFIX + rangeFieldName).field(rangeFieldName);
    for (RangeSegment segment : rangeSegments) {
      String key = String.format("%s-%s", segment.getFrom().toString(), segment.getTo().toString());
      numericRangeBuilder.addRange(key, Double.valueOf(segment.getFrom().toString()), Double.valueOf(segment.getTo().toString()));
    }
    rangeBuilder = numericRangeBuilder;
  }
  if (segType == RangeSegment.SegmentType.Date) {
    DateRangeAggregationBuilder dateRangeBuilder = AggregationBuilders.dateRange(AGG_BUCKET_KEY_PREFIX + rangeFieldName).field(rangeFieldName);
    for (RangeSegment segment : rangeSegments) {
      DateTime fromDate = getDateRangeVal(segment.getFrom().toString());
      DateTime toDate = getDateRangeVal(segment.getTo().toString());
      String key = String.format("[%s]-[%s]", formatDateRangeAggKey(fromDate), formatDateRangeAggKey(toDate));
      dateRangeBuilder.addRange(key, fromDate, toDate);
    }
    rangeBuilder = dateRangeBuilder;
  }
  return rangeBuilder;
}

代码示例来源:origin: org.sonarsource.sonarqube/sonar-server

private static AbstractAggregationBuilder createRangeFacet(String metricKey, Double... thresholds) {
 RangeAggregationBuilder rangeAgg = AggregationBuilders.range(metricKey)
  .field(FIELD_MEASURES_VALUE);
 final int lastIndex = thresholds.length - 1;
 IntStream.range(0, thresholds.length)
  .forEach(i -> {
   if (i == 0) {
    rangeAgg.addUnboundedTo(thresholds[0]);
    rangeAgg.addRange(thresholds[0], thresholds[1]);
   } else if (i == lastIndex) {
    rangeAgg.addUnboundedFrom(thresholds[lastIndex]);
   } else {
    rangeAgg.addRange(thresholds[i], thresholds[i + 1]);
   }
  });
 return AggregationBuilders.nested("nested_" + metricKey, FIELD_MEASURES)
  .subAggregation(
   AggregationBuilders.filter("filter_" + metricKey, termsQuery(FIELD_MEASURES_KEY, metricKey))
    .subAggregation(rangeAgg));
}

代码示例来源:origin: org.nuxeo.elasticsearch/nuxeo-elasticsearch-core

@JsonIgnore
@Override
public RangeAggregationBuilder getEsAggregate() {
  RangeAggregationBuilder ret = AggregationBuilders.range(getId()).field(getField());
  for (AggregateRangeDefinition range : getRanges()) {
    if (range.getFrom() != null) {
      if (range.getTo() != null) {
        ret.addRange(range.getKey(), range.getFrom(), range.getTo());
      } else {
        ret.addUnboundedFrom(range.getKey(), range.getFrom());
      }
    } else if (range.getTo() != null) {
      ret.addUnboundedTo(range.getKey(), range.getTo());
    }
  }
  return ret;
}

代码示例来源:origin: org.vertexium/vertexium-elasticsearch5

RangeAggregationBuilder rangeBuilder = AggregationBuilders.range(aggName);
rangeBuilder.field(propertyName);

代码示例来源:origin: visallo/vertexium

RangeAggregationBuilder rangeBuilder = AggregationBuilders.range(aggName);
rangeBuilder.field(propertyName);

代码示例来源:origin: org.vertexium/vertexium-elasticsearch-singledocument

RangeBuilder rangeBuilder = AggregationBuilders.range(aggName);
rangeBuilder.field(propertyName);

代码示例来源:origin: org.vertexium/vertexium-elasticsearch2

RangeBuilder rangeBuilder = AggregationBuilders.range(aggName);
rangeBuilder.field(propertyName);

相关文章