używam geo_distance
filter z tire w mojej kwerendy i działa prawidłowo:obliczeniowej geo odległość w elasticsearch
search.filter :geo_distance, :distance => "#{request.distance}km", :location => "#{request.lat},#{request.lng}"
spodziewałem się, że wynik będzie jakoś obejmują obliczoną odległość do geolokalizacji, że użyłem do mój filtr.
Czy istnieje sposób, aby powiedzieć elasticsearch, aby uwzględnić to w odpowiedzi, aby nie musiałem go obliczyć w rubinach dla każdego wyniku?
UPDATE == ==
i found the answer w grupie dyskusyjne:
search.sort do
by "_geo_distance", "location" => "#{request.lat},#{request.lng}", "unit" => "km" if request.with_location?
end
sortowania przez _geo_distance
przyniesie odległości w surowych wyników.
Dziękuję, że sortowanie działało przez _geo_distance! – jspooner
Zobacz również https://github.com/karmi/tire/issues/417#issuecomment-7331381 i https://gist.github.com/1051213 – karmi
@karmi czy masz dobre rozwiązanie, aby umieścić rzeczywisty geo-odległość do wyniku zamiast pola '' 'sort'''? – phoet