Hi Pat, I am sorry that I may need step-by-step guide here.
Ok, I have added "has trip_id" in the TripDay model. Next is the trips_controller.rb. If you see my code above, I have also added ":group_by => trip_id" and ":group_function => :attr" to the Trip.search. The filter form is in my Trips' index.html.erb. I notice that I haven't really included the Trip.search to search TripDay as well because when I search, it still returns zero result. How should I add that? Thanks for your help. Really appreciate it. On Nov 4, 9:17 pm, Pat Allan <[email protected]> wrote: > No worries about being a noob - we've all got to start somewhere :) > > Yes, you need to add 'has trip_id' to the define_index block in your TripDay > model - if the attribute doesn't exist, you won't be able to group by it. > > Cheers > > -- > Pat > > On 03/11/2010, at 7:11 PM, Victor 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 > > ... > > 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.
