I search the trips with spots from trips_controller index:

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), :group_by => 'trip_id'
      @trips = results.paginate(:page => params[:page])
    else
      @trips = Trip.paginate(:all, :page => params[:page], :order =>
'created_at DESC')
    end
  end
  .
  .
  .
end

Already added "has trip_id" in my TripDay's index. Stopped Sphinx,
rake ts:rebuild, tried to search, but returned zero result. Most
likely it's something I had done wrong.

On Nov 3, 4:11 pm, Victor <[email protected]> wrote:
> Hi Pat
>
> Here are the models so far:
>
> trip_day.rb
> =========
> class TripDay < ActiveRecord::Base
>   belongs_to :trip
>
>   has_many :trip_day_spots
>   has_many :spots, :through => :trip_day_spots
>
>   # ThinkingSphinx Index
>   define_index do
>     indexes spots.name, :as => :spot_name
>     indexes spots.city, :as => :spot_city
>     indexes spots.state, :as => :spot_state
>     indexes spots.country, :as => :spot_country
>   end
> end
>
> Trip.rb
> =======
> class Trip < ActiveRecord::Base
>   belongs_to :user, :counter_cache => true
>
>   has_many :spot_trips, :dependent => :destroy
>   has_many :spots, :through => :spot_trips
>
>   has_many :trip_days, :dependent => :destroy
>   has_many :trip_reviews, :dependent => :destroy
>
>   # ThinkingSphinx Index
>   define_index do
>     indexes :name, :sortable => true
>     indexes duration
>     has budget, created_at, rating_average
>   end
> end
>
> trip_day already belongs to Trip. Must I put in "has trip_id" in
> trip_day.rb?
>
> Sorry for being a noob here.
>
> Thanks.
>
> On Nov 3, 2:43 pm, Pat Allan <[email protected]> wrote:
>
> > Hi Victor
>
> > Well, it's great that it works here.
>
> > 1. You are indeed right, you're indexing columns from the spots association 
> > as fields.
> > 2. You could add an attribute of trip_id to TripDay's index:
> >   has trip_id
> > And then group the results by 
> > trip_id...http://freelancing-god.github.com/ts/en/searching.html#grouping
>
> > That said, it *should* work for Trip. Perhaps try stopping Sphinx, deleting 
> > the index files, and then run rake ts:rebuild to generate it all from 
> > scratch for sure?
>
> > --
> > Pat
>
> > On 03/11/2010, at 4:55 PM, Victor wrote:
>
> > > Hi Pat,
>
> > > I have added indexes to the following
>
> > > trip_day.rb
> > > ========
> > > class TripDay < ActiveRecord::Base
> > >  belongs_to :trip
>
> > >  has_many :trip_day_spots
> > >  has_many :spots, :through => :trip_day_spots
>
> > >  # ThinkingSphinx Index
> > >  define_index do
> > >    indexes spots.name, :as => :spot_name
> > >    indexes spots.city, :as => :spot_city
> > >    indexes spots.state, :as => :spot_state
> > >    indexes spots.country, :as => :spot_country
> > >  end
> > >  .
> > >  .
> > >  .
> > > end
>
> > > I ran ts:rebuild, then search this in console:
>
> > >>> TripDay.search "Cititel Mid Valley"
> > > => [#<TripDay id: 4, trip_date: "2010-10-06", trip_id: 2, created_at:
> > > "2010-10-21 10:17:18", updated_at: "2010-10-21 10:17:18">]
>
> > > Few questions:
>
> > > 1. Previously, was the trip.rb indexing the spots name, city, country,
> > > etc. correctly? They are indexed, am I right?
> > > 2. With the TripDay now can be indexed, is there anyway for me to use
> > > it as search for my Trips?
>
> > > Thanks.
>
> > > On Nov 2, 11:59 am, Pat Allan <[email protected]> wrote:
> > >> Of course - though I would prefer a donation once the problem's solved 
> > >> ;)http://pledgie.com/campaigns/1752
>
> > >> --
> > >> Pat
>
> > >> On 02/11/2010, at 2:43 PM, Victor wrote:
>
> > >>> No problem Pat. Can I have a link to make donation? :)
>
> > >>> On Nov 2, 8:06 am, Pat Allan <[email protected]> wrote:
> > >>>> Sorry Victor, I'm out of ideas as to what's causing the problem, 
> > >>>> beyond investigating it on the server myself (and even then, I 
> > >>>> couldn't promise anything).
>
> > >>>> --
> > >>>> Pat
>
> > >>>> On 01/11/2010, at 11:33 PM, Victor wrote:
>
> > >>>>> So when I did the Trip.searc:
>
> > >>>>>>> Trip.search "Inna Putri Bali"
>
> > >>>>> => []
>
> > >>>>> Spots in Trip is not indexed?
>
> > >>>>> I don't have any sphinx scopes.
>
> > >>>>> On Nov 1, 8:29 pm, Pat Allan <[email protected]> wrote:
> > >>>>>> But you're running these commands via console - so we're avoiding 
> > >>>>>> the controllers and views, and it's still not working...
>
> > >>>>>> --
> > >>>>>> Pat
>
> > >>>>>> On 01/11/2010, at 9:27 PM, Victor wrote:
>
> > >>>>>>> Could it be that my filter in view or controller wasn't setup 
> > >>>>>>> properly
> > >>>>>>> to search the right place?
>
> > >>>>>>> On Nov 1, 6:21 pm, Pat Allan <[email protected]> wrote:
> > >>>>>>>> I live in Melbourne, and I've not been to the Gaol yet ;)
>
> > >>>>>>>> I'm running out of ideas at the moment... the SQL looks correct, 
> > >>>>>>>> the data's being indexed, and searchd is restarting as expected. 
> > >>>>>>>> You don't have any sphinx scopes (or more importantly - a default 
> > >>>>>>>> sphinx scope) in the Trip model, do you?
>
> > >>>>>>>> --
> > >>>>>>>> Pat
>
> > >>>>>>>> On 01/11/2010, at 9:13 PM, Victor wrote:
>
> > >>>>>>>>> If I did "Spot.search "Inna Putri Bali"
>
> > >>>>>>>>>>> Spot.search "Inna Putri Bali"
> > >>>>>>>>> => [#<Spot id: 2, spot_type: "accommodation", name: "Inna Putri 
> > >>>>>>>>> Bali",
> > >>>>>>>>> acc_type: "Hotel", operation_hours: "", check_in: "2000-01-01
> > >>>>>>>>> 14:00:00", check_out: "2000-01-01 13:00:00", season: "No season",
> > >>>>>>>>> prices: "Check their website for latest deals. It's much che...",
> > >>>>>>>>> country: "Indonesia", zip: "80363", state: "Bali", city: "Kuta",
> > >>>>>>>>> address: "Jalan Kawasan Nusa Dua Resort", contact: "+62 
> > >>>>>>>>> 361771020",
> > >>>>>>>>> email: "[email protected]", web: "http://hotelputribali.com";,
> > >>>>>>>>> description: "Inna Putri Bali is set on a wide of Nusa Dua. The 
> > >>>>>>>>> e...",
> > >>>>>>>>> reviews_count: 0, rating_average: 
> > >>>>>>>>> #<BigDecimal:b65d3ffc,'0.0',4(8)>,
> > >>>>>>>>> lat: #<BigDecimal:b65d3fac,'-0.8799857E1',12(16)>, lng:
> > >>>>>>>>> #<BigDecimal:b65d3ee4,'0.115228862E3',12(20)>, created_at: 
> > >>>>>>>>> "2010-10-20
> > >>>>>>>>> 04:12:17", updated_at: "2010-11-01 09:04:36", photos_count: 13>]
>
> > >>>>>>>>> On Nov 1, 5:48 pm, Victor <[email protected]> wrote:
> > >>>>>>>>>> Trying "Inna Putri Bali" instead
>
> > >>>>>>>>>> Loading production environment (Rails 2.3.8)
> > >>>>>>>>>> ** Erubis 2.6.6>> Trip.search "Inna Putri Bali"
>
> > >>>>>>>>>> => []
>
> > >>>>>>>>>> Looks like we have a problem here huh...
>
> > >>>>>>>>>> By the way, Old Melbourne Gaol was awesome. Went there once.
>
> > >>>>>>>>>> On Nov 1, 5:41 pm, Pat Allan <[email protected]> wrote:
>
> > >>>>>>>>>>> Right, that seems fine, so now let's look back within the Rails 
> > >>>>>>>>>>> app. On the server, in 'script/console production', what's the 
> > >>>>>>>>>>> output of the following:
> > >>>>>>>>>>>   Trip.search "Old Melbourne Gaol"
>
> > >>>>>>>>>>> --
> > >>>>>>>>>>> Pat
>
> > >>>>>>>>>>> On 01/11/2010, at 8:37 PM, Victor wrote:
>
> > >>>>>>>>>>>> So I run 'ps aux | grep searchd'
>
> > >>>>>>>>>>>> 1000     17569  0.0  0.2   9168  1144 ?        S    04:00   
> > >>>>>>>>>>>> 0:00
> > >>>>>>>>>>>> searchd --pidfile --config 
> > >>>>>>>>>>>> /var/www/abc.com/public/abc/releases/
> > >>>>>>>>>>>> 20101008073517/config/production.sphinx.conf
> > >>>>>>>>>>>> 1000     20220  0.0  0.1   1864   700 pts/0    S+   17:34   
> > >>>>>>>>>>>> 0:00 grep
> > >>>>>>>>>>>> --color=auto searchd
>
> > >>>>>>>>>>>> Then 'rake ts:rebuild RAILS_ENV=production'
>
> > >>>>>>>>>>>> ** Erubis 2.6.6
> > >>>>>>>>>>>> Stopped search daemon (pid 17569).
> > >>>>>>>>>>>> Generating Configuration to 
> > >>>>>>>>>>>> /var/www/abc.com/public/abc/releases/
> > >>>>>>>>>>>> 20101008073517/config/production.sphinx.conf
> > >>>>>>>>>>>> Sphinx 1.10-beta (r2420)
> > >>>>>>>>>>>> Copyright (c) 2001-2010, Andrew Aksyonoff
> > >>>>>>>>>>>> Copyright (c) 2008-2010, Sphinx Technologies Inc (http://
> > >>>>>>>>>>>> sphinxsearch.com)
>
> > >>>>>>>>>>>> using config file 
> > >>>>>>>>>>>> '/var/www/abc.com/public/abc/releases/20101008073517/
> > >>>>>>>>>>>> config/production.sphinx.conf'...
> > >>>>>>>>>>>> indexing index 'spot_core'...
> > >>>>>>>>>>>> collected 7 docs, 0.0 MB
> > >>>>>>>>>>>> sorted 0.0 Mhits, 100.0% done
> > >>>>>>>>>>>> total 7 docs, 5351 bytes
> > >>>>>>>>>>>> total 0.015 sec, 343828 bytes/sec, 449.78 docs/sec
> > >>>>>>>>>>>> skipping non-plain index 'spot'...
> > >>>>>>>>>>>> indexing index 'trip_core'...
> > >>>>>>>>>>>> collected 3 docs, 0.0 MB
> > >>>>>>>>>>>> sorted 0.0 Mhits, 100.0% done
> > >>>>>>>>>>>> total 3 docs, 55 bytes
> > >>>>>>>>>>>> total 0.004 sec, 13372 bytes/sec, 729.39 docs/sec
> > >>>>>>>>>>>> skipping non-plain index 'trip'...
> > >>>>>>>>>>>> total 12 reads, 0.000 sec, 8.1 kb/call avg, 0.0 msec/call avg
> > >>>>>>>>>>>> total 24 writes, 0.000 sec, 9.0 kb/call avg, 0.0 msec/call avg
> > >>>>>>>>>>>> Started successfully (pid 20236).
>
> > >>>>>>>>>>>> Then 'ps aux | grep searchd'
>
> > >>>>>>>>>>>> 1000     20236  0.0  0.1   9164   780 pts/0    S    17:35   
> > >>>>>>>>>>>> 0:00
> > >>>>>>>>>>>> searchd --pidfile --config 
> > >>>>>>>>>>>> /var/www/abc.com/public/abc/releases/
> > >>>>>>>>>>>> 20101008073517/config/production.sphinx.conf
> > >>>>>>>>>>>> 1000     20238  0.0  0.1   1860   596 pts/0    S+   17:37   
> > >>>>>>>>>>>> 0:00 grep
> > >>>>>>>>>>>> --color=auto searchd
>
> > >>>>>>>>>>>> On Nov 1, 5:32 pm, Pat Allan <[email protected]> wrote:
> > >>>>>>>>>>>>> Hi Victor
>
> > >>>>>>>>>>>>> That seems fine...
> > >>>>>>>>>>>>> What is the output of 'ps aux | grep searchd' before *and* 
> > >>>>>>>>>>>>> after running 'rake ts:rebuild'?
>
> > >>>>>>>>>>>>> I want to make sure we're dealing with just a single searchd 
> > >>>>>>>>>>>>> instance that is noting the changes.
>
> > >>>>>>>>>>>>> Cheers
>
> > >>>>>>>>>>>>> --
> > >>>>>>>>>>>>> Pat
>
> > >>>>>>>>>>>>> On 01/11/2010, at 8:24 PM, Victor wrote:
>
> > >>>>>>>>>>>>>> Here it is in my production.sphinx.conf instead.
>
> > >>>>>>>>>>>>>> indexer
> > >>>>>>>>>>>>>> {
> > >>>>>>>>>>>>>> }
>
> > >>>>>>>>>>>>>> searchd
> > >>>>>>>>>>>>>> {
> > >>>>>>>>>>>>>>  listen = 127.0.0.1:9791
> > >>>>>>>>>>>>>>  log = 
> > >>>>>>>>>>>>>> /var/www/abc.com/public/abc/releases/20101008073517/log/
> > >>>>>>>>>>>>>> searchd.log
> > >>>>>>>>>>>>>>  query_log = 
> > >>>>>>>>>>>>>> /var/www/abc.com/public/abc/releases/20101008073517/log/
> > >>>>>>>>>>>>>> searchd.query.log
> > >>>>>>>>>>>>>>  pid_file = 
> > >>>>>>>>>>>>>> /var/www/abc.com/public/abc/releases/20101008073517/log/
> > >>>>>>>>>>>>>> searchd.production.pid
> > >>>>>>>>>>>>>> }
>
> > >>>>>>>>>>>>>> source spot_core_0
> > >>>>>>>>>>>>>> {
> > >>>>>>>>>>>>>>  type = mysql
> > >>>>>>>>>>>>>>  sql_host = localhost
> > >>>>>>>>>>>>>>  sql_user = root
> > >>>>>>>>>>>>>>  sql_pass =
> > >>>>>>>>>>>>>>  sql_db = abc_production
> > >>>>>>>>>>>>>>  sql_query_pre = SET
>
> ...
>
> read more »

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