вычислить географическое расстояние в elasticsearch

я использую фильтр geo_distance с шиной в моем запросе, и он отлично работает:

search.filter :geo_distance, :distance => "#{request.distance}km", :location => "#{request.lat},#{request.lng}"

я ожидал, что результат каким-то образом будет включать вычисленное расстояние до гео- местоположение, которое я использовал для своего фильтра.

есть ли способ указать elasticsearch включить это в ответ, чтобы мне не приходилось вычислять его в рубине для каждого результата?

== UPDATE ==

я нашел ответ в группе Google:

search.sort do
  by "_geo_distance", "location" => "#{request.lat},#{request.lng}", "unit" => "km" if request.with_location?
end

сортировка по _geo_distanc e даст расстояние в необработанных результатах.

7
задан phoet 15 February 2012 в 09:51
поделиться