Hi Steven

As Timo's suggested, the issue is that you've got two attributes for latitude, 
and TS defaults to lat first. Instead of using zip_code.lat, you could use 
zip_code.id instead:

  has zip_code.id, :as => :zip_id

Or, if you update to 1.3.18 or later (1.4.10 is the latest for Rails 2.x), you 
can just use the join method instead:

  join zip_code

Cheers

-- 
Pat

On 15/12/2011, at 6:22 AM, Timo Virkkala wrote:

> Hi Steven,
> 
> I had a similar problem. Try adding the following to your query:
> :latitude_attr => :latitude, :longitude_attr => :longitude
> 
> These tell Thinking Sphinx which attributes to use for geodist, since
> you have both lat and latitude.
> 
> -T-
> 
> 
> On Wed, Dec 14, 2011 at 20:49, Steven Bristol <[email protected]> wrote:
>> Using ts 1.3.16 on a rails 2.3.8 app:
>> 
>> 
>> 
>> Here is the index:
>> 
>> 
>>  define_index do
>>    indexes name, :sortable=>:true
>>    indexes zip
>>    has zip_code.lat #need this or ts won't add the join for the
>> zip_codes table. hopefully this will be fixed in a new version of ts
>>    has "RADIANS(zip_codes.lat)",  :as => :latitude,  :type => :float
>>    has "RADIANS(zip_codes.lng)", :as => :longitude, :type => :float
>>    set_property :delta => :datetime, :threshold => 10.minutes
>>    set_property :enable_star => true
>>    set_property :morphology => 'none'
>>  end
>> 
>> 
>> 
>> 
>> Here is the truncated data from the sphinx query:
>> 
>> id      name    zip     lat     latitude        longitude
>> 3       steve   32257   30.1893550000   0.526903643803413       
>> -1.42440622491863
>> 4       allan   91711   34.1274400000   0.595636193276814       
>> -2.0545192857202
>> 
>> 
>> 
>> Here is the ts query:
>> 
>> Model.search :per_page=>25, :enable_star=>true, :geo=>[0.5956361925962,
>> -2.05451928337257], :min_prefix_len=>0, :order=>"@geodist ASC,
>> @relevance DESC", :page=>1, :min_infix_len=>1
>> 
>> 
>> Here are the results:
>> 
>> [#<Model id: 3, name: "steve">, #<Model id: 4, name: "allan">]
>> 
>> 
>> Here is the geodist:
>> 
>> results.map{|x| x.sphinx_attributes['@geodist']}
>> [11989305.0, 13507781.0]
>> 
>> 
>> 
>> Am I crazy?
>> 1. Shouldn't the results be in order [4,3]?
>> 2. Shouldn't the map of geodist be more like [close to zero, really
>> big number]?
>> 
>> --
>> 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.
>> 
> 
> -- 
> 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.
> 

-- 
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