%PDF- %PDF-
| Direktori : /home/graphicd/public_html/vebto/vendor/ongr/elasticsearch-dsl/docs/Aggregation/ |
| Current File : /home/graphicd/public_html/vebto/vendor/ongr/elasticsearch-dsl/docs/Aggregation/index.md |
# Aggregation
Objective aggregation builder represents all available [Elasticsearch aggregations][1].
To form an aggregation you have to create `Search` object. See below an example of min aggregation usage.
```php
$search = new Search();
$minAggregation = new MinAggregation('min_agg');
$minAggregation->setField('price');
$search->addAggregation($minAggregation);
$queryArray = $search->toArray();
```
There are 2 types of aggregation: bucketing and metric. The only difference in using them is that metric bucketing
aggregations supports nesting while metric aggregations will ignore any set nested aggregations.
## Nesting aggregations
Bucketing aggregation can have any number nested aggregations and nesting can go to unlimited depth.
Example nested aggregation.
```JSON
{
"aggregations": {
"agg_color": {
"terms": {
"field": "color"
},
"aggregations": {
"agg_avg_price": {
"avg": {
"field": "price"
}
},
"agg_brand": {
"terms": {
"field": "brand"
},
"aggregations": {
"agg_avg_price": {
"avg": {
"field": "price"
}
}
}
}
}
},
"agg_avg_price": {
"avg": {
"field": "price"
}
}
}
}
```
```php
$avgPriceAggregation = new AvgAggregation('avg_price');
$avgPriceAggregation->setField('price');
$brandTermAggregation = new TermsAggregation('brand');
$brandTermAggregation->setField('brand');
$brandTermAggregation->addAggregation($avgPriceAggregation);
$colorTermsAggregation = new TermsAggregation('color');
$colorTermsAggregation->setField('color');
$colorTermsAggregation->addAggregation($avgPriceAggregation);
$colorTermsAggregation->addAggregation($brandTermAggregation);
$search = new Search();
$search->addAggregation($colorTermsAggregation);
$search->addAggregation($avgPriceAggregation);
$queryArray = $search->toArray();
```
## Metric Aggregations
- [Avg](Avg.md)
- [Cardinality](Cardinality.md)
- [ExtendedStats](ExtendedStats.md)
- [Max](Max.md)
- [Min](Min.md)
- [PercentileRanks](PercentileRanks.md)
- [Percentiles](Percentiles.md)
- [Stats](Stats.md)
- [Sum](Sum.md)
- [TopHits](TopHits.md)
- [ValueCount](ValueCount.md)
## Bucketing Aggregations
- [Children](Children.md)
- [DateRange](DateRange.md)
- [Filter](Filter.md)
- [Filters](Filters.md)
- [GeoBounds](GeoBounds.md)
- [GeoDistance](GeoDistance.md)
- [GeoHashGrid](GeoHashGrid.md)
- [Global](Global.md)
- [Histogram](Histogram.md)
- [Ipv4Range](Ipv4Range.md)
- [Missing](Missing.md)
- [Nested](Nested.md)
- [Range](Range.md)
- [ReverseNested](ReverseNested.md)
- [Terms](Terms.md)
[1]: https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations.html