From 459290ec148f43a2623f52102b64d42673eec157 Mon Sep 17 00:00:00 2001 From: Aivaras Gotovskis <aivaras.gotovskis@ongr.io> Date: Fri, 10 Jul 2015 12:05:12 +0300 Subject: [PATCH] Add global Ipv4Range doc. --- docs/Aggregation/Ipv4Range.md | 74 +++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 docs/Aggregation/Ipv4Range.md diff --git a/docs/Aggregation/Ipv4Range.md b/docs/Aggregation/Ipv4Range.md new file mode 100644 index 0000000..215d91c --- /dev/null +++ b/docs/Aggregation/Ipv4Range.md @@ -0,0 +1,74 @@ +# Ipv4 Range Aggregation + +> More info about ipv4 range aggregation is in the [official elasticsearch docs][1] + +Just like the dedicated date range aggregation, there is also a dedicated +range aggregation for IPv4 typed fields. + +## Simple example + +```JSON +{ + "aggregations" : { + "agg_ip_range" : { + "ip_range" : { + "field" : "ip", + "ranges" : [ + { "to" : "10.0.0.5" }, + { "from" : "10.0.0.5" } + ] + } + } + } +} +``` + +And now the query via DSL: + +```php +$ipv4RangeAggregation = new Ipv4RangeAggregation( + 'ip_range', + 'ip', + [ + ['to' => '10.0.0.5'], + ['from' => '10.0.0.5'], + ] +); + +$search = new Search(); +$search->addAggregation($ipv4RangeAggregation); + +$queryArray = $search->toArray(); +``` + +## Example using masks + +```php +$ipv4RangeAggregation = new Ipv4RangeAggregation( + 'ip_range', + 'ip', + ['10.0.0.0/25'] +); + +$search = new Search(); +$search->addAggregation($ipv4RangeAggregation); + +$queryArray = $search->toArray(); +``` + +## Example using adders + +```php +$ipv4RangeAggregation = new Ipv4RangeAggregation('ip_range', 'ip'); +$ipv4RangeAggregation->addMask('10.0.0.0/25'); +$ipv4RangeAggregation->addRange(null, '10.0.0.5'); +$ipv4RangeAggregation->addRange('10.0.0.5'); +$ipv4RangeAggregation->addRange('10.0.0.0', '10.0.0.127'); + +$search = new Search(); +$search->addAggregation($ipv4RangeAggregation); + +$queryArray = $search->toArray(); +``` + +[1]: https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-iprange-aggregation.html -- GitLab