Агрегации геодезических расстояний с сортировкой по корзинам

#c# #elasticsearch #nest2

Вопрос:

Я пытаюсь отсортировать по geodistance агрегацию geodistance. Я видел, что вы можете помещать кольца расстояний, но я пытаюсь отсортировать их от самых близких к самым дальним (как пробовал в коде, но не работает).

 var searchResponse = _client.Search<CitiesModel>(s => s
                    .Size(0)
                    .Aggregations(agg => 
                        agg.GeoDistance("distance", g => g
                            .Field(p => p.Propriete.Source.Localisation.gps)
                            .DistanceType(GeoDistanceType.Arc)
                            .Unit(DistanceUnit.Kilometers)
                            .Origin(search.Result[0].Centre.Coordinates[1], search.Result[0].Centre.Coordinates[0])
                            .Ranges(r => r.To(25))
                            .Aggregations(agg => 
                                agg.Terms("postCode", ts => ts
                                    .Field(f => 
                                        f.Propriete.Source.Location.PostalCode.Suffix("keyword"))
                                    .Size(1000)
                                    .Aggregations(ag => ag
                                        .Terms("cities", ts => ts
                                            .Field(f => f.Propriete.Source.Location.City.Suffix("keyword"))
                                            )
                                        )
                                    )
                                )
                            )
                            .BucketSort("distance", bs => bs
                                .Sort(st => st
                                    .GeoDistance(gd => gd
                                        .Field(f => f.Propriete.Source.Localisation.gps)
                                        .DistanceType(GeoDistanceType.Arc)
                                        .Order(SortOrder.Ascending)
                                        .Points(new GeoLocation(search.Result[0].Centre.Coordinates[1], search.Result[0].Centre.Coordinates[0]))
                                        .Unit(DistanceUnit.Kilometers))
                                )))
                );