Я реализовал фильтрацию в Elasticsearch на основе GEO_Distance, отображая данные этого местоположения с геопочечным типом, который содержит Latithest & Longitude. Вот пример документа: < /p>
Код: Выделить всё
{
"geo_distance": {
"distance": "10mi",
"distance_type": "arc",
"location": {
"lat": 40.4511171,
"lon": -81.4038577
}
}
}
< /code>
Я попытался использовать поля сценариев, но это не сработало!descriptor.ScriptFields(sf => sf
.ScriptField("calculated_distance", script => script
.Source("doc['location'].arcDistance(params.lat, params.lon)")
.Lang("painless")
.Params(p => p
.Add("lat", filter.resourceGeoY.Value)
.Add("lon", filter.resourceGeoX.Value)
)
)
);
< /code>
"script_fields":{
"calculated_distance":{
"script":{
"source":"doc['location'].arcDistance(params.lat, params.lon)",
"params":{
"lat":40.4511171,
"lon":-81.4038577
}
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... c-sharp-ne
Мобильная версия