Я использую Spring Data Redis для сохранения некоторых адресов , каждый из которых содержит свойство location
типа Point
, которое содержит географические координаты конкретного адреса. Кроме того, свойство помечено @GeoIndexed
. Как описано здесь: Геопространственный индекс .
Моя Address
модель выглядит следующим образом:
@RedisHash("addresses")
public class Address {
@Id
private String id;
@GeoIndexed
private Point location;
}
Мне удалось получить все близлежащие адреса в данной точке и расстояние с этим запросом к репозиторию:
public interface AddressRepository extends CrudRepository<Address, String> {
List<Address> findByLocationNear(Point location, Distance distance);
}
Моя проблема в том, что возвращенные адреса по вышеуказанному запросу не отсортированы, но мне нужно, чтобы они были отсортированы от ближайшего к дальнему (* Опция 1019 *, описанная здесь: GEORADIUS - Команда Redis ).
Поэтому, как правило, мне нужен способ передать дополнительные аргументы этому запросу, такие как сортировка или ограничение результатов (любая опция GEORADIUS - Redis Command ).
Может кто-нибудь помочь, пожалуйста?