本文整理了Java中org.elasticsearch.search.aggregations.AggregationBuilders.range()
方法的一些代码示例,展示了AggregationBuilders.range()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。AggregationBuilders.range()
方法的具体详情如下:
包路径:org.elasticsearch.search.aggregations.AggregationBuilders
类名称: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);
内容来源于网络,如有侵权,请联系作者删除!