Okay... how many spots are usually tied to a trip? A few? Dozens? Hundred?

-- 
Pat

On 01/11/2010, at 8:02 PM, Victor wrote:

> Hi Pat,
> 
> Yes, rebuilt is done, and I did not change the model.
> 
> Yes, related trip is not being return.
> 
> For example:
> 
> Trip: 3 day Victoria trip.
> Spots in the trip above: Old Melbourne Gaol, Melbourne Museum, The Art
> Gallery
> 
> Each spot has an individual page of course.
> 
> When I search Victoria, the trip above will show in result. But if I
> search "Old Melbourne Gaol", or any of the spots.name, it returns 0
> result. This actually happens to the site-wide search.
> 
> By the way, the codes I gave were just snippets, which I think they
> are the only one related.
> 
> Thanks.
> 
> On Nov 1, 4:57 pm, Pat Allan <[email protected]> wrote:
>> Hi Victor
>> 
>> Just to confirm: are you searching for a word that appears in a spot name 
>> (or city, state, country), and the related trip is not being returned?
>> 
>> Have you run 'rake ts:rebuild' since adding those fields?
>> 
>> Cheers
>> 
>> --
>> Pat
>> 
>> On 01/11/2010, at 7:51 PM, Victor wrote:
>> 
>>> Hi Pat,
>> 
>>> I'm using the following:
>> 
>>> Rails 2.3.8, Sphinx 1.10-beta, TS 1.3.20
>> 
>>> If you looked at the code below, I would like to search Spots
>>> (different model) name, city, state, country listed in Trips. Somehow
>>> my search filter only works on the name of the Trip, but not the spots
>>> in it.
>> 
>>> trip.rb
>>> =====
>>> class Trip < ActiveRecord::Base
>>>  has_many :spots, :through => :spot_trips
>> 
>>> # ThinkingSphinx Index
>>>  define_index do
>>>    indexes :name, :sortable => true
>>>    indexes duration
>>>    indexes spots.name, :as => :spot_name
>>>    indexes spots.city, :as => :spot_city
>>>    indexes spots.state, :as => :spot_state
>>>    indexes spots.country, :as => :spot_country
>>>    has budget, created_at, rating_average
>>>  end
>>> end
>> 
>>> trips_controller.rb
>>> =======
>>> class TripsController < ApplicationController
>>>  before_filter :require_user, :except => [:show, :index]
>> 
>>>  def index
>>>    if params[:filter] == 'on'
>>>      country = params[:country] == 'All' ? {} : {:spot_country =>
>>> params[:country]}
>>>      duration = params[:days].blank? ? "" : params[:days]
>> 
>>>      if !duration.blank? && country
>>>        conditions = {:duration => duration}.merge(country)
>>>      elsif !duration.blank? && country.blank?
>>>        conditions = {:duration => duration}
>>>      else country && duration.blank?
>>>        conditions = country
>>>      end
>> 
>>>      keyword = params[:keyword].blank? ? "" : params[:keyword]
>> 
>>>      case params[:order]
>>>      when 'date_descend'
>>>        order = {:order => 'created_at DESC'}
>>>      when 'date_ascend'
>>>        order = {:order => 'created_at ASC'}
>>>      when 'rating_descend'
>>>        order = {:order => 'rating_average DESC'}
>>>      when 'rating_ascend'
>>>        order = {:order => 'rating_average ASC'}
>>>      when 'budget_dscend'
>>>        order = {:order => 'budget DESC'}
>>>      when 'budget_ascend'
>>>        order = {:order => 'budget ASC'}
>>>      else
>>>        order = {}
>>>      end
>> 
>>>      results = Trip.search params[:keyword], {:conditions =>
>>> conditions, :star => true}.merge(order)
>>>      @trips = results.paginate(:page => params[:page])
>>>    else
>>>      @trips = Trip.paginate(:all, :page => params[:page], :order =>
>>> 'created_at DESC')
>>>    end
>>>  end
>> 
>>> index.html.erb for trip
>>> =====
>>> I have these for filters:
>> 
>>> <%= text_field_tag 'keyword' %>
>>> <select name="country">
>>>  <option>All</option>
>>>  <option value="Afghanistan">Afghanistan</option>
>>>  .
>>>  .
>>> </select>
>>> <input class="duration" name="days" />
>>> <select name="order">
>>>  <option value="date_descend" <%= params[:order] == 'date_dscend' ?
>>> 'selected' : ''%>>
>>>    Date: Latest to earliest
>>>  </option>
>>>  <option value="date_ascend" <%= params[:order] == 'date_ascend' ?
>>> 'selected' : ''%>>
>>>    Date: Earliest to latest
>>>  </option>
>>>  <option value="rating_descend" <%= params[:order] ==
>>> 'rating_descend' ? 'selected' : ''%>>
>>>    Rating: Highest to lowest
>>>  </option>
>>>  <option value="rating_ascend" <%= params[:order] ==
>>> 'rating_ascend' ? 'selected' : ''%>>
>>>    Rating: Lowest to highest
>>>  </option>
>>> </select>
>> 
>>> 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 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