2012-01-16 1 views
0

제목이 분명하지 않아 설명해 드리겠습니다.Sunspot : 국가 또는 주에서 모든 이벤트 찾기

내 앱에는 이벤트가 있습니다. 그들은 지리적 위치를 측정합니다 : 나는 위도와 경도를 저장합니다. 내 문제는 사용자가 이벤트를 검색 할 때 kansas, montreal 등 과 같이 입력하는 것입니다. 그래야 kansas (지오 코더 사용)을 찾을 때 "센터"를 얻습니다. 따라서 태양 흑점에 이벤트를 요청하면 " 이 위치 근처에서 "나는 그 위치의 중심에 가까운 것들만 얻는다. france 또는 australia을 입력하면 더욱 심각합니다.

나는 그것을 처리하는 좋은 방법을 알고 있는지 궁금합니다.

내 생각에 지금은 이벤트가 저장 될 때 country, state 등을 저장 한 다음 (Google에서 정규화 된 주소를 얻을 수 있음) 입력 한 내용의 텍스트 검색을 수행하는 것입니다. 위치 필드 ...

하지만 그 접근 방식 :(
SOLR에서, 그것은 다음을 수행하는 것은 불가능에 대한 문제가있다 :. near이 중첩 될 수 없습니다

any_of do 
    with(:coordinates).near(coord[0], coord[1], :precision => 3) 
    keywords where 
end 

때문에이 See here.

태양 흑점 1.3에서 변경 되었습니까?

다른 해결책이 있습니까? 나는 심지어 solr에서 탄성 검색과 같은 다른 검색 플랫폼으로 변경하는 것을 받아 들일 수도 있지만 그렇게하지 않는 것이 좋습니다.

답변

1

ElasticSearch로 전환 했으므로 절대로 좋아합니다. 지리 정보 검색을 위해 훨씬 더 낫습니다 ... 저는 여전히 패싯에 문제가 있지만, 전체적으로 새로운 앱을 시작한 누군가를 위해 흑점을 통해 ES를 추천합니다.