Я хотел бы использовать API-интерфейс java для возврата вычисленного поля в ответ на документы.Использование API elasticsearch java для вычисления расстояния с использованием геолокации пользователя
В частности, я хочу, чтобы пользователь проходил геосоединение и использовал это геоинформацию, чтобы вычислить расстояние между этим геоданным (переданным в запросе) и геоданными документов (хранимыми в индексе ES).
Я понимаю, что это легко осуществимо с помощью поля сценария следующим образом:
curl -XGET 'http://127.0.0.1:9200/geonames/_search?pretty=1' -d '
{
"script_fields" : {
"distance" : {
"params" : {
"lat" : 2.27,
"lon" : 50.3
},
"script" : "doc[\u0027location\u0027].distanceInKm(lat,lon)"
}
}
}
выше цитируемого из следующего SO сообщения: https://stackoverflow.com/a/9309674/536299
Теперь, как вы идете по поводу делать это с Java API или Spring Data ES?
Спасибо большое @rahulroc, Hummm. Но тогда, поле сценария используется для всех типов документов? Как связать тип с указанным выше полем сценария? – balteo
По типу .. вы имеете в виду тип elasticsearch в индексе? https://www.elastic.co/blog/index-vs-type – Rahul
Да и я также подразумеваю класс java, аннотированный с данными весны es's @ org.springframework.data.elasticsearch.annotations.Document аннотации. – balteo