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 NAMES utf8 >>>>>>>>>>>>>> sql_query_pre = SET TIME_ZONE = '+0:00' >>>>>>>>>>>>>> sql_query = SELECT SQL_NO_CACHE `spots`.`id` * 2 + 0 AS `id` , >>>>>>>>>>>>>> `spots`.`name` AS `name`, `spots`.`address` AS `address`, >>>>>>>>>>>>>> `spots`.`city` AS `city`, `spots`.`state` AS `state`, >>>>>>>>>>>>>> `spots`.`country` AS `country`, `spots`.`spot_type` AS >>>>>>>>>>>>>> `spot_type`, >>>>>>>>>>>>>> `spots`.`description` AS `description`, `spots`.`id` AS >>>>>>>>>>>>>> `sphinx_internal_id`, 419485005 AS `class_crc`, 0 AS >>>>>>>>>>>>>> `sphinx_deleted`, >>>>>>>>>>>>>> IFNULL(`spots`.`name`, '') AS `name_sort`, >>>>>>>>>>>>>> `spots`.`rating_average` AS >>>>>>>>>>>>>> `rating_average` FROM `spots` WHERE `spots`.`id` >= $start AND >>>>>>>>>>>>>> `spots`.`id` <= $end GROUP BY `spots`.`id` ORDER BY NULL >>>>>>>>>>>>>> sql_query_range = SELECT IFNULL(MIN(`id`), 1), >>>>>>>>>>>>>> IFNULL(MAX(`id`), 1) >>>>>>>>>>>>>> FROM `spots` >>>>>>>>>>>>>> sql_attr_uint = sphinx_internal_id >>>>>>>>>>>>>> sql_attr_uint = class_crc >>>>>>>>>>>>>> sql_attr_uint = sphinx_deleted >>>>>>>>>>>>>> sql_attr_str2ordinal = name_sort >>>>>>>>>>>>>> sql_attr_float = rating_average >>>>>>>>>>>>>> sql_query_info = SELECT * FROM `spots` WHERE `id` = (($id - 0) >>>>>>>>>>>>>> / 2) >>>>>>>>>>>>>> } >> >>>>>>>>>>>>>> index spot_core >>>>>>>>>>>>>> { >>>>>>>>>>>>>> source = spot_core_0 >>>>>>>>>>>>>> path = /var/www/abc.com/public/abc/shared/db/sphinx/spot_core >>>>>>>>>>>>>> charset_type = utf-8 >>>>>>>>>>>>>> min_infix_len = 3 >>>>>>>>>>>>>> enable_star = 1 >>>>>>>>>>>>>> } >> >>>>>>>>>>>>>> index spot >>>>>>>>>>>>>> { >>>>>>>>>>>>>> type = distributed >>>>>>>>>>>>>> local = spot_core >>>>>>>>>>>>>> } >> >>>>>>>>>>>>>> source trip_core_0 >>>>>>>>>>>>>> { >>>>>>>>>>>>>> type = mysql >>>>>>>>>>>>>> sql_host = localhost >>>>>>>>>>>>>> sql_user = root >>>>>>>>>>>>>> sql_pass = Sp[Hry{X~6jjF437[DD >>>>>>>>>>>>>> sql_db = abc_production >>>>>>>>>>>>>> sql_query_pre = SET NAMES utf8 >>>>>>>>>>>>>> sql_query_pre = SET TIME_ZONE = '+0:00' >>>>>>>>>>>>>> sql_query = SELECT SQL_NO_CACHE `trips`.`id` * 2 + 1 AS `id` , >>>>>>>>>>>>>> `trips`.`name` AS `name`, `trips`.`duration` AS `duration`, >>>>>>>>>>>>>> GROUP_CONCAT(DISTINCT IFNULL(`spots`.`name`, '0') SEPARATOR ' ') >>>>>>>>>>>>>> AS >>>>>>>>>>>>>> `spot_name`, GROUP_CONCAT(DISTINCT IFNULL(`spots`.`city`, '0') >>>>>>>>>>>>>> SEPARATOR ' ') AS `spot_city`, GROUP_CONCAT(DISTINCT >>>>>>>>>>>>>> IFNULL(`spots`.`state`, '0') SEPARATOR ' ') AS `spot_state`, >>>>>>>>>>>>>> GROUP_CONCAT(DISTINCT IFNULL(`spots`.`country`, '0') SEPARATOR ' >>>>>>>>>>>>>> ') AS >>>>>>>>>>>>>> `spot_country`, `trips`.`id` AS `sphinx_internal_id`, 3596900869 >>>>>>>>>>>>>> AS >>>>>>>>>>>>>> `class_crc`, 0 AS `sphinx_deleted`, IFNULL(`trips`.`name`, '') AS >>>>>>>>>>>>>> `name_sort`, `trips`.`budget` AS `budget`, >>>>>>>>>>>>>> UNIX_TIMESTAMP(`trips`.`created_at`) AS `created_at`, >>>>>>>>>>>>>> `trips`.`rating_average` AS `rating_average` FROM `trips` LEFT >>>>>>>>>>>>>> OUTER JOIN `spot_trips` ON (`trips`.`id` = >>>>>>>>>>>>>> `spot_trips`.`trip_id`) >>>>>>>>>>>>>> LEFT OUTER JOIN `spots` ON (`spots`.`id` = >>>>>>>>>>>>>> `spot_trips`.`spot_id`) >>>>>>>>>>>>>> WHERE `trips`.`id` >= $start AND `trips`.`id` <= $end GROUP BY >>>>>>>>>>>>>> `trips`.`id` ORDER BY NULL >>>>>>>>>>>>>> sql_query_range = SELECT IFNULL(MIN(`id`), 1), >>>>>>>>>>>>>> IFNULL(MAX(`id`), 1) >>>>>>>>>>>>>> FROM `trips` >>>>>>>>>>>>>> sql_attr_uint = sphinx_internal_id >>>>>>>>>>>>>> sql_attr_uint = class_crc >>>>>>>>>>>>>> sql_attr_uint = sphinx_deleted >>>>>>>>>>>>>> sql_attr_timestamp = created_at >>>>>>>>>>>>>> sql_attr_str2ordinal = name_sort >>>>>>>>>>>>>> sql_attr_float = >> >> ... >> >> 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. > -- 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.
