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.
