2
我試圖讓一個地理搜索通過關聯來工作。非常相似,這傢伙:ThinkingSphinx:通過關聯運行SQL字符串
How do I geo-search multiple models with ThinkingSphinx?
的一個區別是,我試圖用自定義的SQL語法的關聯語法結合起來。它不會對索引打印任何錯誤,但是當我嘗試搜索失敗:
class Person
define_index do
indexes tags(:text), :as => :tags
has media.location.lat('RADIANS(location.lat)'), :as => :lat, :type => :float
has media.location.lng('RADIANS(location.lng)'), :as => :lng, :type => :float
end
sphinx_scope(:by_location) { |loc|
{ :geo => [loc.lat.to_radians, loc.lng.to_radians],
:with => {"@geodist" => 0.0..loc.radius },
:latitude_attr => "lat",
:longitude_attr => "lng"
}
}
end
#running this search from console
Person.by_location(Location.first)
這是錯誤:
ThinkingSphinx::SphinxError: index fulfillment_core: unknown latitude attribute 'lat'
我試過沒有SQL字符串配置它 - 這運行沒有錯誤,但數學當然是完全錯誤的,因爲它試圖在度數上進行弧度操作。
是否有任何方法來結合轉換和關聯,或者我堅持存儲我的數據爲弧度而不是度數?
完美!加入是我錯過的。謝謝帕特! – brandon 2011-04-04 00:21:43
謝謝,帕特!你的回答非常感謝(我一直都在看)。 – Abdo 2012-01-10 15:51:37
有沒有辦法在那裏命名「連接表」?例如,讓我們假設上面的人有一個位置以及media.location。你怎麼能區分這兩個表達式? – Abdo 2012-01-18 15:38:25