Sunspot: найти все события в стране или штате - PullRequest
0 голосов
/ 16 января 2012

Название не ясно, поэтому позвольте мне объяснить:

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

1 Ответ

1 голос
/ 17 января 2012

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

...