in server/src/main/java/org/opensearch/search/SearchModule.java [388:691]
private ValuesSourceRegistry registerAggregations(List<SearchPlugin> plugins) {
ValuesSourceRegistry.Builder builder = new ValuesSourceRegistry.Builder();
registerAggregation(
new AggregationSpec(AvgAggregationBuilder.NAME, AvgAggregationBuilder::new, AvgAggregationBuilder.PARSER).addResultReader(
InternalAvg::new
).setAggregatorRegistrar(AvgAggregationBuilder::registerAggregators),
builder
);
registerAggregation(
new AggregationSpec(
WeightedAvgAggregationBuilder.NAME,
WeightedAvgAggregationBuilder::new,
WeightedAvgAggregationBuilder.PARSER
).addResultReader(InternalWeightedAvg::new).setAggregatorRegistrar(WeightedAvgAggregationBuilder::registerUsage),
builder
);
registerAggregation(
new AggregationSpec(SumAggregationBuilder.NAME, SumAggregationBuilder::new, SumAggregationBuilder.PARSER).addResultReader(
InternalSum::new
).setAggregatorRegistrar(SumAggregationBuilder::registerAggregators),
builder
);
registerAggregation(
new AggregationSpec(MinAggregationBuilder.NAME, MinAggregationBuilder::new, MinAggregationBuilder.PARSER).addResultReader(
InternalMin::new
).setAggregatorRegistrar(MinAggregationBuilder::registerAggregators),
builder
);
registerAggregation(
new AggregationSpec(MaxAggregationBuilder.NAME, MaxAggregationBuilder::new, MaxAggregationBuilder.PARSER).addResultReader(
InternalMax::new
).setAggregatorRegistrar(MaxAggregationBuilder::registerAggregators),
builder
);
registerAggregation(
new AggregationSpec(StatsAggregationBuilder.NAME, StatsAggregationBuilder::new, StatsAggregationBuilder.PARSER).addResultReader(
InternalStats::new
).setAggregatorRegistrar(StatsAggregationBuilder::registerAggregators),
builder
);
registerAggregation(
new AggregationSpec(
ExtendedStatsAggregationBuilder.NAME,
ExtendedStatsAggregationBuilder::new,
ExtendedStatsAggregationBuilder.PARSER
).addResultReader(InternalExtendedStats::new).setAggregatorRegistrar(ExtendedStatsAggregationBuilder::registerAggregators),
builder
);
registerAggregation(
new AggregationSpec(ValueCountAggregationBuilder.NAME, ValueCountAggregationBuilder::new, ValueCountAggregationBuilder.PARSER)
.addResultReader(InternalValueCount::new)
.setAggregatorRegistrar(ValueCountAggregationBuilder::registerAggregators),
builder
);
registerAggregation(
new AggregationSpec(
PercentilesAggregationBuilder.NAME,
PercentilesAggregationBuilder::new,
PercentilesAggregationBuilder::parse
).addResultReader(InternalTDigestPercentiles.NAME, InternalTDigestPercentiles::new)
.addResultReader(InternalHDRPercentiles.NAME, InternalHDRPercentiles::new)
.setAggregatorRegistrar(PercentilesAggregationBuilder::registerAggregators),
builder
);
registerAggregation(
new AggregationSpec(
PercentileRanksAggregationBuilder.NAME,
PercentileRanksAggregationBuilder::new,
PercentileRanksAggregationBuilder::parse
).addResultReader(InternalTDigestPercentileRanks.NAME, InternalTDigestPercentileRanks::new)
.addResultReader(InternalHDRPercentileRanks.NAME, InternalHDRPercentileRanks::new)
.setAggregatorRegistrar(PercentileRanksAggregationBuilder::registerAggregators),
builder
);
registerAggregation(
new AggregationSpec(
MedianAbsoluteDeviationAggregationBuilder.NAME,
MedianAbsoluteDeviationAggregationBuilder::new,
MedianAbsoluteDeviationAggregationBuilder.PARSER
).addResultReader(InternalMedianAbsoluteDeviation::new)
.setAggregatorRegistrar(MedianAbsoluteDeviationAggregationBuilder::registerAggregators),
builder
);
registerAggregation(
new AggregationSpec(
CardinalityAggregationBuilder.NAME,
CardinalityAggregationBuilder::new,
CardinalityAggregationBuilder.PARSER
).addResultReader(InternalCardinality::new).setAggregatorRegistrar(CardinalityAggregationBuilder::registerAggregators),
builder
);
registerAggregation(
new AggregationSpec(GlobalAggregationBuilder.NAME, GlobalAggregationBuilder::new, GlobalAggregationBuilder::parse)
.addResultReader(InternalGlobal::new),
builder
);
registerAggregation(
new AggregationSpec(MissingAggregationBuilder.NAME, MissingAggregationBuilder::new, MissingAggregationBuilder.PARSER)
.addResultReader(InternalMissing::new)
.setAggregatorRegistrar(MissingAggregationBuilder::registerAggregators),
builder
);
registerAggregation(
new AggregationSpec(FilterAggregationBuilder.NAME, FilterAggregationBuilder::new, FilterAggregationBuilder::parse)
.addResultReader(InternalFilter::new),
builder
);
registerAggregation(
new AggregationSpec(FiltersAggregationBuilder.NAME, FiltersAggregationBuilder::new, FiltersAggregationBuilder::parse)
.addResultReader(InternalFilters::new),
builder
);
registerAggregation(
new AggregationSpec(
AdjacencyMatrixAggregationBuilder.NAME,
AdjacencyMatrixAggregationBuilder::new,
AdjacencyMatrixAggregationBuilder::parse
).addResultReader(InternalAdjacencyMatrix::new),
builder
);
registerAggregation(
new AggregationSpec(SamplerAggregationBuilder.NAME, SamplerAggregationBuilder::new, SamplerAggregationBuilder::parse)
.addResultReader(InternalSampler.NAME, InternalSampler::new)
.addResultReader(UnmappedSampler.NAME, UnmappedSampler::new),
builder
);
registerAggregation(
new AggregationSpec(
DiversifiedAggregationBuilder.NAME,
DiversifiedAggregationBuilder::new,
DiversifiedAggregationBuilder.PARSER
).setAggregatorRegistrar(DiversifiedAggregationBuilder::registerAggregators)
/* Reuses result readers from SamplerAggregator*/,
builder
);
registerAggregation(
new AggregationSpec(TermsAggregationBuilder.NAME, TermsAggregationBuilder::new, TermsAggregationBuilder.PARSER).addResultReader(
StringTerms.NAME,
StringTerms::new
)
.addResultReader(UnmappedTerms.NAME, UnmappedTerms::new)
.addResultReader(LongTerms.NAME, LongTerms::new)
.addResultReader(DoubleTerms.NAME, DoubleTerms::new)
.setAggregatorRegistrar(TermsAggregationBuilder::registerAggregators),
builder
);
registerAggregation(
new AggregationSpec(RareTermsAggregationBuilder.NAME, RareTermsAggregationBuilder::new, RareTermsAggregationBuilder.PARSER)
.addResultReader(StringRareTerms.NAME, StringRareTerms::new)
.addResultReader(UnmappedRareTerms.NAME, UnmappedRareTerms::new)
.addResultReader(LongRareTerms.NAME, LongRareTerms::new)
.setAggregatorRegistrar(RareTermsAggregationBuilder::registerAggregators),
builder
);
registerAggregation(
new AggregationSpec(
SignificantTermsAggregationBuilder.NAME,
SignificantTermsAggregationBuilder::new,
SignificantTermsAggregationBuilder::parse
).addResultReader(SignificantStringTerms.NAME, SignificantStringTerms::new)
.addResultReader(SignificantLongTerms.NAME, SignificantLongTerms::new)
.addResultReader(UnmappedSignificantTerms.NAME, UnmappedSignificantTerms::new)
.setAggregatorRegistrar(SignificantTermsAggregationBuilder::registerAggregators),
builder
);
registerAggregation(
new AggregationSpec(
SignificantTextAggregationBuilder.NAME,
SignificantTextAggregationBuilder::new,
SignificantTextAggregationBuilder::parse
),
builder
);
registerAggregation(
new AggregationSpec(RangeAggregationBuilder.NAME, RangeAggregationBuilder::new, RangeAggregationBuilder.PARSER).addResultReader(
InternalRange::new
).setAggregatorRegistrar(RangeAggregationBuilder::registerAggregators),
builder
);
registerAggregation(
new AggregationSpec(DateRangeAggregationBuilder.NAME, DateRangeAggregationBuilder::new, DateRangeAggregationBuilder.PARSER)
.addResultReader(InternalDateRange::new)
.setAggregatorRegistrar(DateRangeAggregationBuilder::registerAggregators),
builder
);
registerAggregation(
new AggregationSpec(IpRangeAggregationBuilder.NAME, IpRangeAggregationBuilder::new, IpRangeAggregationBuilder.PARSER)
.addResultReader(InternalBinaryRange::new)
.setAggregatorRegistrar(IpRangeAggregationBuilder::registerAggregators),
builder
);
registerAggregation(
new AggregationSpec(HistogramAggregationBuilder.NAME, HistogramAggregationBuilder::new, HistogramAggregationBuilder.PARSER)
.addResultReader(InternalHistogram::new)
.setAggregatorRegistrar(HistogramAggregationBuilder::registerAggregators),
builder
);
registerAggregation(
new AggregationSpec(
DateHistogramAggregationBuilder.NAME,
DateHistogramAggregationBuilder::new,
DateHistogramAggregationBuilder.PARSER
).addResultReader(InternalDateHistogram::new).setAggregatorRegistrar(DateHistogramAggregationBuilder::registerAggregators),
builder
);
registerAggregation(
new AggregationSpec(
AutoDateHistogramAggregationBuilder.NAME,
AutoDateHistogramAggregationBuilder::new,
AutoDateHistogramAggregationBuilder.PARSER
).addResultReader(InternalAutoDateHistogram::new)
.setAggregatorRegistrar(AutoDateHistogramAggregationBuilder::registerAggregators),
builder
);
registerAggregation(
new AggregationSpec(
VariableWidthHistogramAggregationBuilder.NAME,
VariableWidthHistogramAggregationBuilder::new,
VariableWidthHistogramAggregationBuilder.PARSER
).addResultReader(InternalVariableWidthHistogram::new)
.setAggregatorRegistrar(VariableWidthHistogramAggregationBuilder::registerAggregators),
builder
);
registerAggregation(
new AggregationSpec(
GeoDistanceAggregationBuilder.NAME,
GeoDistanceAggregationBuilder::new,
GeoDistanceAggregationBuilder::parse
).addResultReader(InternalGeoDistance::new).setAggregatorRegistrar(GeoDistanceAggregationBuilder::registerAggregators),
builder
);
registerAggregation(
new AggregationSpec(
GeoHashGridAggregationBuilder.NAME,
GeoHashGridAggregationBuilder::new,
GeoHashGridAggregationBuilder.PARSER
).addResultReader(InternalGeoHashGrid::new).setAggregatorRegistrar(GeoHashGridAggregationBuilder::registerAggregators),
builder
);
registerAggregation(
new AggregationSpec(
GeoTileGridAggregationBuilder.NAME,
GeoTileGridAggregationBuilder::new,
GeoTileGridAggregationBuilder.PARSER
).addResultReader(InternalGeoTileGrid::new).setAggregatorRegistrar(GeoTileGridAggregationBuilder::registerAggregators),
builder
);
registerAggregation(
new AggregationSpec(NestedAggregationBuilder.NAME, NestedAggregationBuilder::new, NestedAggregationBuilder::parse)
.addResultReader(InternalNested::new),
builder
);
registerAggregation(
new AggregationSpec(
ReverseNestedAggregationBuilder.NAME,
ReverseNestedAggregationBuilder::new,
ReverseNestedAggregationBuilder::parse
).addResultReader(InternalReverseNested::new),
builder
);
registerAggregation(
new AggregationSpec(TopHitsAggregationBuilder.NAME, TopHitsAggregationBuilder::new, TopHitsAggregationBuilder::parse)
.addResultReader(InternalTopHits::new),
builder
);
registerAggregation(
new AggregationSpec(GeoBoundsAggregationBuilder.NAME, GeoBoundsAggregationBuilder::new, GeoBoundsAggregationBuilder.PARSER)
.addResultReader(InternalGeoBounds::new)
.setAggregatorRegistrar(GeoBoundsAggregationBuilder::registerAggregators),
builder
);
registerAggregation(
new AggregationSpec(
GeoCentroidAggregationBuilder.NAME,
GeoCentroidAggregationBuilder::new,
GeoCentroidAggregationBuilder.PARSER
).addResultReader(InternalGeoCentroid::new).setAggregatorRegistrar(GeoCentroidAggregationBuilder::registerAggregators),
builder
);
registerAggregation(
new AggregationSpec(
ScriptedMetricAggregationBuilder.NAME,
ScriptedMetricAggregationBuilder::new,
ScriptedMetricAggregationBuilder.PARSER
).addResultReader(InternalScriptedMetric::new),
builder
);
registerAggregation(
new AggregationSpec(CompositeAggregationBuilder.NAME, CompositeAggregationBuilder::new, CompositeAggregationBuilder.PARSER)
.addResultReader(InternalComposite::new)
.setAggregatorRegistrar(CompositeAggregationBuilder::registerAggregators),
builder
);
registerFromPlugin(plugins, SearchPlugin::getAggregations, (agg) -> this.registerAggregation(agg, builder));
// after aggs have been registered, see if there are any new VSTypes that need to be linked to core fields
registerFromPlugin(plugins, SearchPlugin::getAggregationExtentions, (registrar) -> {
if (registrar != null) {
registrar.accept(builder);
}
});
return builder.build();
}