So I did this..

 define_index do
        indexes user.username, :as => :author
        indexes subject, :as => :subject
        indexes content, :as => :content

        has created_at, updated_at
        has user(:id), :as => :author

        has 'RADIANS(lat)', :as => :latitude,  :type => :float
        has 'RADIANS(lng)',:as => :longitude, :type => :float
        set_property :latitude_attr  =>  :latitude
        set_property :longitude_attr => :longitude
    end

Same for my Store model.
  define_index do
        indexes :name, :sortable => true
        indexes :description, :as => :description
        indexes :city, :as => :city
        indexes :state, :as => :state
        indexes :country, :as => :country

        has created_at, updated_at, city, name

        has 'RADIANS(lat)', :as => :latitude,  :type => :float
        has 'RADIANS(lng)',:as => :longitude, :type => :float

        set_property :latitude_attr  =>  :latitude
        set_property :longitude_attr => :longitude
    end

Still doesn't return anything.

On May 31, 5:46 pm, Pat Allan <[email protected]> wrote:
> This is because, with more than one model, TS doesn't have a reference point 
> for attributes, and so doesn't try to guess what your lat/lon attributes are. 
> If you explicitly add :latitude_attr => :latitude, :longitude_attr => 
> :longitude to your ThinkingSphinx.search call, that should make it work.
>
> Cheers
>
> --
> Pat
>
> On 01/06/2010, at 10:41 AM, badnaam wrote:
>
> > OK, my get_radian method was the problem, I was sending it the wrong
> > parameters.
> > instead of ..
>
> > l = (Geokit::Geocoders::GoogleGeocoder.geocode 'xxxxx').ll
> > la = Address.get_radian(l[0], l[1])
>
> > it should be
> > l = (Geokit::Geocoders::GoogleGeocoder.geocode 'xxxxx')
> > la = Address.get_radian(l.lat, l.lng)
>
> > My apologies for the silly mistake!
>
> > So now it works. But I have another problem.
>
> > I am using geo search on two models Store and Article
>
> > When I do this..
>
> > Article.search(:geo => ll, :with => {"@geodist" => 0.00..(20 *
> > 1609.344)})..it works
> > Store.search(:geo => ll, :with => {"@geodist" => 0.00..(20 *
> > 1609.344)})..it works
> > ThinkingSphinx.search ("lorem") works too.
> > ThinkingSphinx.search(:geo => ll, :with => {"@geodist" => 0.00..(20 *
> > 1609.344)}, :classes => [Article]) or ThinkingSphinx.search(:geo =>
> > ll, :with => {"@geodist" => 0.00..(20 * 1609.344)}. :classes =>
> > [Store])...works too!
>
> > But.
> > ThinkingSphinx.search(:geo => ll, :with => {"@geodist" => 0.00..(20 *
> > 1609.344)}) or ThinkingSphinx.search(:geo => ll, :with => {"@geodist"
> > => 0.00..(20 * 1609.344)}. :classes => [Store, Article])..does not
> > work.
>
> > Any reason?
>
> > Thanks
>
> > On May 31, 9:42 am, badnaam <[email protected]> wrote:
> >> Could this be happening because lat and lng is stored in a polymorphic
> >> association? Perhaps the address pluralization issue is causing
> >> problems internally? Strange thing is that without the @geodist option
> >> it does product results. Is there a log somewhere that can shed more
> >> light?
>
> >> Thanks!
>
> >> On May 31, 12:47 am, badnaam <[email protected]> wrote:
>
> >>> I tried that still no result. strange.
>
> >>> On May 30, 11:33 pm, Pat Allan <[email protected]> wrote:
>
> >>>> I'm not sure if it matters, but try changing your set_property values to 
> >>>> symbols instead of strings. Although really, you shouldn't need them, 
> >>>> since you're using standard attribute names.
>
> >>>> Have you restarted Sphinx (and reindexed) since adding the lat/lng 
> >>>> attributes?
>
> >>>> --
> >>>> Pat
>
> >>>> On 31/05/2010, at 4:30 PM, badnaam wrote:
>
> >>>>> define_index do
> >>>>>        indexes :name, :sortable => true
>
> >>>>>        indexes address.city, :as => :city
>
> >>>>>        has created_at, updated_at
>
> >>>>>                     has 'RADIANS(addresses.lat)', :as
> >>>>> => :latitude,  :type => :float
> >>>>>        has 'RADIANS(addresses.lng)',:as => :longitude, :type
> >>>>> => :float
>
> >>>>>        set_property :latitude_attr   => "latitude"
> >>>>>        set_property :longitude_attr  => "longitude"
>
> >>>>>    end
>
> >>>>> On May 30, 5:38 pm, Pat Allan <[email protected]> wrote:
> >>>>>> What does your define_index block look like in your Store model?
>
> >>>>>> --
> >>>>>> Pat
>
> >>>>>> On 31/05/2010, at 6:53 AM, badnaam wrote:
>
> >>>>>>> I am trying to do a proximity search like..
>
> >>>>>>> l = (Geokit::Geocoders::GoogleGeocoder.geocode 'xxxxx').ll
>
> >>>>>>> la = Address.get_radian(l[0], l[1])
>
> >>>>>>> def self.get_radian(lat, lng)
> >>>>>>>        return [(lat / 180.0) * Math::PI, (lng / 180.0) * Math::PI]
> >>>>>>>    end
>
> >>>>>>> Store.search("green", :geo => la, :with => {"@geodist" =>
> >>>>>>> 0.0..50_000.0})
>
> >>>>>>> This returns no results, I know it should return some records, and it
> >>>>>>> does if I take the @geodist out, what am I doing wrong here?
>
> >>>>>>> Thanks
>
> >>>>>>> --
> >>>>>>> You received this message because you are subscribed to the Google 
> >>>>>>> Groups "Thinking Sphinx" group.
> >>>>>>> To post to this group, send email to [email protected].
> >>>>>>> To unsubscribe from this group, send email to 
> >>>>>>> [email protected].
> >>>>>>> For more options, visit this group 
> >>>>>>> athttp://groups.google.com/group/thinking-sphinx?hl=en.
>
> >>>>> --
> >>>>> You received this message because you are subscribed to the Google 
> >>>>> Groups "Thinking Sphinx" group.
> >>>>> To post to this group, send email to [email protected].
> >>>>> To unsubscribe from this group, send email to 
> >>>>> [email protected].
> >>>>> For more options, visit this group 
> >>>>> athttp://groups.google.com/group/thinking-sphinx?hl=en.
>
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "Thinking Sphinx" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to 
> > [email protected].
> > For more options, visit this group 
> > athttp://groups.google.com/group/thinking-sphinx?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"Thinking Sphinx" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/thinking-sphinx?hl=en.

Reply via email to