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 = budget
>>>  sql_attr_float = rating_average
>>>  sql_query_info = SELECT * FROM `trips` WHERE `id` = (($id - 1) / 2)
>>> }
>> 
>>> index trip_core
>>> {
>>>  source = trip_core_0
>>>  path = /var/www/abc.com/public/abc/shared/db/sphinx/trip_core
>>>  charset_type = utf-8
>>>  min_infix_len = 3
>>>  enable_star = 1
>>> }
>> 
>>> index trip
>>> {
>>>  type = distributed
>>>  local = trip_core
>>> }
>> 
>>> On Nov 1, 5:19 pm, Pat Allan <[email protected]> wrote:
>>>> Hmm, haven't figured out the problem yet. What does your trip_core_0 
>>>> source look like in sphinx/development.sphinx.conf? Make sure you remove 
>>>> the database password :)
>> 
>>>> --
>>>> Pat
>> 
>>>> On 01/11/2010, at 8:15 PM, Victor wrote:
>> 
>>>>> Currently testing with just one or two each, but they are not
>>>>> limited.
>> 
>>>>> Some spots are tied to trip_day too, but it's just for order purpose.
>>>>> Lemme know if you need to look into that code too.
>> 
>>>>> I also have the following codes:
>> 
>>>>> spot_trip.rb
>>>>> =====
>>>>> class SpotTrip < ActiveRecord::Base
>>>>>  belongs_to :trip
>>>>>  belongs_to :spot
>> 
>>>>>  def spot_name
>>>>>    spot.name if spot.try(:name)
>>>>>  end
>> 
>>>>>  def spot_type
>>>>>    spot.spot_type if spot.try(:spot_type)
>>>>>  end
>>>>> end
>> 
>>>>> On Nov 1, 5:08 pm, Pat Allan <[email protected]> wrote:
>>>>>> 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
>> 
>> ...
>> 
>> 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.

Reply via email to