#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))
)))
);