Солнечное пятно: найти все события в стране или штате

Название не ясно, поэтому поясню:

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


person Robin    schedule 16.01.2012    source источник


Ответы (1)


Я перешел на ElasticSearch, и мне это очень нравится. Это намного лучше для поиска по геолокации ... У меня все еще есть некоторые проблемы с фасетами, но в целом я бы порекомендовал ES вместо sunspot для тех, кто запускает новое приложение.

person Robin    schedule 17.01.2012