Название не ясно, поэтому поясню:
В моих приложениях есть события. Они геолоцированы: я сохраняю широту и долготу. Моя проблема в том, что когда пользователи ищут события, они вводят такие вещи, как: kansas, montreal и т. д. Поэтому, когда я нахожу kansas (используя геокодер), я получаю его «центр», и поэтому, когда я запрашиваю солнечное пятно для событий «рядом» этой локации, я получаю только те, что ближе к центру локации. Еще хуже, если они наберут france или australia.
Мне было интересно, знаете ли вы о хорошем способе справиться с этим.
Моя единственная идея сейчас - также сохранить country, state и т. д. местоположения события при его сохранении (я могу получить нормализованный адрес из Google), а затем выполнить текстовый поиск того, что они ввели в поле местоположения. .
Но с этим подходом есть проблема :(
В solr невозможно сделать следующее:
any_of do
with(:coordinates).near(coord[0], coord[1], :precision => 3)
keywords where
end
потому что near не может быть вложенным. см. здесь
Внесли ли они изменения в солнечное пятно 1.3, чтобы разрешить это?
Вы видите какое-то другое решение? Я мог бы даже принять переход с solr на другую поисковую платформу, такую как эластичный поиск, но я бы предпочел этого не делать.