code_junkie

How do I geo-search multiple models with ThinkingSphinx?

Nov 12th, 2011
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.38 KB | None | 0 0
  1. define_index do
  2. indexes [:first_name, :last_name], :as => :name
  3. indexes login
  4. indexes email
  5. indexes headline
  6. indexes description
  7. indexes business.name, :as => :business_name
  8. indexes [addresses.street_1, addresses.street_2, addresses.city, addresses.postal_code], :as => :address
  9.  
  10. has created_at, :sortable => true
  11. has addresses.latitude, :as => :latitude, :type => :float
  12. has addresses.longitude, :as => :longitude, :type => :float
  13.  
  14. set_property :delta => true
  15. end
  16.  
  17. define_index do
  18. indexes title, :sortable => true
  19. indexes description
  20. indexes [address.street_1, address.street_2, address.city, address.postal_code], :as => :address
  21. indexes images.title, :as => :image_titles
  22. indexes images.description, :as => :image_descriptions
  23. indexes categories(:name), :as => :category_names
  24.  
  25. has price, :sortable => true
  26. has created_at, :sortable => true
  27. has address.latitude, :as => :latitude, :type => :float
  28. has address.longitude, :as => :longitude, :type => :float
  29. has categories(:id), :as => :category_ids
  30.  
  31. where "`items`.`state` = 'for_sale'"
  32.  
  33. set_property :delta => true
  34. end
  35.  
  36. ThinkingSphinx::Search.search('keywords',
  37. :geo => [
  38. degrees_to_radians(params[:lat].to_f),
  39. degrees_to_radians(params[:lon].to_f)
  40. ],
  41. :latitude_attr => "latitude",
  42. :longitude_attr => "longitude"
  43. )
Add Comment
Please, Sign In to add comment