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