tôi đang sử dụng một geo_distance
filter với tire trong truy vấn của tôi và nó hoạt động tốt:tính toán geo khoảng cách trong elasticsearch
search.filter :geo_distance, :distance => "#{request.distance}km", :location => "#{request.lat},#{request.lng}"
tôi mong rằng kết quả sẽ bằng cách nào đó bao gồm khoảng cách tính đến vị trí địa lý mà tôi sử dụng cho bộ lọc của tôi.
có cách nào để yêu cầu elasticsearch đưa vào câu trả lời để tôi không phải tính toán bằng ruby cho mọi kết quả không?
== CẬP NHẬT ==
i found the answer trong một nhóm google:
search.sort do
by "_geo_distance", "location" => "#{request.lat},#{request.lng}", "unit" => "km" if request.with_location?
end
sắp xếp theo các _geo_distance
sẽ mang lại khoảng cách trong kết quả thô.
Cảm ơn bạn đã sắp xếp theo _geo_distance! – jspooner
Ngoài ra, vui lòng xem https://github.com/karmi/tire/issues/417#issuecomment-7331381 và https://gist.github.com/1051213 – karmi
@karmi để bạn có giải pháp tốt về cách đặt thực tế khoảng cách địa lý vào kết quả thay vì trường '' 'sắp xếp''? – phoet