Название не ясно, поэтому позвольте мне объяснить:
В моих приложениях есть события. Они геолокации: я храню широту и долготу.
Моя проблема в том, что когда пользователи ищут события, они набирают такие вещи, как: 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 к другой поисковой платформе, такой как упругий поиск, но я бы предпочел не делать этого.