You are looking at documentation for an older release.
Not what you want? See the
current release documentation.
Geo Distance Aggregation Usageedit
Fluent DSL Exampleedit
s => s .Aggregations(a => a .GeoDistance("rings_around_amsterdam", g => g .Field(p => p.Location) .Origin(52.376, 4.894) .Ranges( r => r.To(100), r => r.From(100).To(300), r => r.From(300) ) ) )
Object Initializer Syntax Exampleedit
new SearchRequest<Project> { Aggregations = new GeoDistanceAggregation("rings_around_amsterdam") { Field = Field((Project p) => p.Location), Origin = "52.376, 4.894", Ranges = new List<Nest.Range> { new Nest.Range { To = 100 }, new Nest.Range { From = 100, To = 300 }, new Nest.Range { From = 300 } } } }
Example json output.
{ "aggs": { "rings_around_amsterdam": { "geo_distance": { "field": "location", "origin": { "lat": 52.376, "lon": 4.894 }, "ranges": [ { "to": 100.0 }, { "from": 100.0, "to": 300.0 }, { "from": 300.0 } ] } } } }
Handling Responsesedit
response.IsValid.Should().BeTrue(); var ringsAroundAmsterdam = response.Aggs.GeoDistance("rings_around_amsterdam"); ringsAroundAmsterdam.Should().NotBeNull(); ringsAroundAmsterdam.Buckets.Where(r => r.Key == "*-100.0").FirstOrDefault().Should().NotBeNull(); ringsAroundAmsterdam.Buckets.Where(r => r.Key == "100.0-300.0").FirstOrDefault().Should().NotBeNull(); ringsAroundAmsterdam.Buckets.Where(r => r.Key == "300.0-*").FirstOrDefault().Should().NotBeNull();