ES度量聚合(ElasticSearch Metric Aggregations),首战被MySQL惨虐

编程入门 行业动态 更新时间:2024-10-03 06:34:43

ES度量聚合(ElasticSearch Metric Aggregations),<a href=https://www.elefans.com/category/jswz/34/1758646.html style=首战被MySQL惨虐"/>

ES度量聚合(ElasticSearch Metric Aggregations),首战被MySQL惨虐

System.out.println(result);

} catch (Throwable e) {

e.printStackTrace();

} finally {

EsClient.close(client);

}

}

其中代码@1:missing(0)表示如果文档中没有取平均值的字段时,则使用该值进行计算,本例中使用0参与计算。

其返回结果如下:

{

“took”:2,

“timed_out”:false,

“_shards”:{

“total”:5,

“successful”:5,

“skipped”:0,

“failed”:0

},

“hits”:{

“total”:39,

“max_score”:0,

“hits”:[

]

},

“aggregations”:{

“avg#avg-aggregation”:{

“value”:1.2820512820512822

}

}

}

Weighted Avg Aggregation 加权平均聚合


加权平均算法,∑(value * weight) / ∑(weight)。

加权平均(weghted_avg)支持的参数列表:

  • value

提供值的字段或脚本的配置。例如定义计算哪个字段的平均值,该值支持如下子参数:

  • field

用来定义平均值的字段名称。

  • missing

用来定义如果匹配到的文档没有avg字段,使用该值来参与计算。

  • weight

用来定义权重的对象,其可选属性如下:

  • field

定义权重来源的字段。

  • missing

如果文档缺失权重来源字段,以该值来代表该文档的权重值。

  • format

数值类型格式化。

  • value_type

用来指定value的类型,例如ValueType.DATE、ValueType.IP等。

示例如下:

POST /exams/_search

{

“size”: 0,

“aggs” : {

“weighted_grade”: {

“weighted_avg”: {

“value”: {

“field”: “grade”

},

“weight”: {

“field”: “weight” // @2

}

}

}

}

}

从文档中抽取属性为weight的字段的值来当权重值。

其JAVA示例如下:

public static void test_weight_avg_aggregation() {

RestHighLevelClient client = EsClient.getClient();

try {

SearchRequest searchRequest = new SearchRequest();

searchRequest.indices(“aggregations_index02”);

SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();

WeightedAvgAggregationBuilder avg = AggregationBuilders.weightedAvg(“avg-aggregation”)

.value(

(new MultiValuesSourceFieldConfig.Builder())

.setFieldName(“num”)

.setMissing(0)

.build()

)

.weight(

(new MultiValuesSourceFieldConfig.Builder())

.setFieldName(“num”)

.setMissing(1)

.build()

)

// .valueType(ValueType.LONG)

;

avg.toString();

sourceBuilder.aggregation(avg);

sourceBuilder.size(0);

sourceBuilder.query(

QueryBuilders.termQuery(“sellerId”, 24)

);

searchRequest.source(sourceBuilder);

SearchResponse result = client.search(searchRequest, RequestOptions.DEFAULT);

System.out.println(result);

} catch (Throwable e) {

更多推荐

ES度量聚合(ElasticSearch Metric Aggregations),首战被MySQL惨虐

本文发布于:2024-03-12 20:15:34,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1732328.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:首战   度量   ElasticSearch   ES   Metric

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!