Weighted Avg Aggregation
The Weighted Avg
aggregation is a single-value metrics aggregation that computes the average while taking into account the varying degrees of importance of numeric values. As a formula, a weighted average is the ∑(value * weight) / ∑(weight)
In order to use the Weighted Avg
aggregation import the following:
import zio.elasticsearch.aggregation.WeightedAvgAggregation
import zio.elasticsearch.ElasticAggregation.weightedAvgAggregation
You can create a Weighted Avg
aggregation using the weightedAvgAggregation
method this way:
val aggregation: WeightedAvgAggregation = weightedAvgAggregation(name = "weightedAvgAggregation", valueField = "doubleField", weightField = "intField")
You can create a type-safe Weighted Avg
aggregation using the weightedAvgAggregation
method this way:
val aggregation: WeightedAvgAggregation = weightedAvgAggregation(name = "weightedAvgAggregation", valueField = Document.doubleField, weightField = Document.intField)
If you want to add aggregation (on the same level), you can use withAgg
method:
val multipleAggregations: MultipleAggregations = weightedAvgAggregation(name = "weightedAvgAggregation1", valueField = Document.intField, weightField = Document.doubleField).withAgg(weightedAvgAggregation(name = "weightedAvgAggregation2", valueField = Document.doubleField, weightField = Document.intField))
If you want to change the valueMissing
, you can use valueMissing
method:
val aggregationWithValueMissing: WeightedAvgAggregation = weightedAvgAggregation(name = "weightedAvgAggregation", field = Document.intField).valueMissing(10.0)
If you want to change the weightMissing
, you can use weightMissing
method:
val aggregationWithWeightMissing: WeightedAvgAggregation = weightedAvgAggregation(name = "weightedAvgAggregation", field = Document.intField).weightMissing(5.0)
If you want to change the weightMissing
and valueMissing
, you can use weightMissing
and valueMissing
methods:
val aggregationWithValueAndWeightMissing: WeightedAvgAggregation = weightedAvgAggregation(name = "weightedAvgAggregation", field = Document.intField).valueMissing(5.0).weightMissing(10.0)
You can find more information about Weighted Avg
aggregation here.