More details here :
http://stackoverflow.com/questions/13124082/tell-thinking-sphinx-to-only-index-the-latest-element-in-a-has-many-relationship
A post has many wiki entries... but only the latests makes sense to be
searchable. Unfortunately, while the has_many and has_one relationships
work fine, Thinking sphinx will always index the OLDEST wikis on each
post... any hint ?
has_many :wikis, :as => :source, :order => "updated_at DESC"
has_one :latest_wiki, :class_name => "Wiki", :conditions => "source_type =
'BlogPost'", :foreign_key => :source_id, :order => "wikis.updated_at
DESC"##used for sphinx to only index the latest revision
define_index do
indexes latest_wiki.data, :as => :post_data
indexes latest_wiki.title , :as => :post_title
indexes blob
has published, :type => :boolean
has idend
this will generate the following conf.. which clearly shows the has_one is
not understood properly :
source blog_post_core_0
{
type = mysql
sql_host = localhost
sql_user = root
sql_pass = diveboard
sql_db = diveboard
sql_query_pre = SET NAMES utf8
sql_query_pre = SET TIME_ZONE = '+0:00'
sql_query = SELECT SQL_NO_CACHE `blog_posts`.`id` * CAST(10 AS SIGNED) +
0 AS `id` , `wikis`.`data` AS `post_data`, `wikis`.`title` AS `post_title`,
`blog_posts`.`blob` AS `blob`, `blog_posts`.`id` AS `sphinx_internal_id`, 0 AS
`sphinx_deleted`, 1270887957 AS `class_crc`, `blog_posts`.`published` AS
`published`, `blog_posts`.`id` AS `id` FROM `blog_posts` LEFT OUTER JOIN
`wikis` ON `wikis`.`source_id` = `blog_posts`.`id` AND source_type = 'BlogPost'
WHERE (`blog_posts`.`id` >= $start AND `blog_posts`.`id` <= $end) GROUP BY
`blog_posts`.`id` ORDER BY NULL
sql_query_range = SELECT IFNULL(MIN(`id`), 1), IFNULL(MAX(`id`), 1) FROM
`blog_posts`
sql_attr_uint = sphinx_internal_id
sql_attr_uint = sphinx_deleted
sql_attr_uint = class_crc
sql_attr_uint = id
sql_attr_bool = published
sql_query_info = SELECT * FROM `blog_posts` WHERE `id` = (($id - 0) / 10)
}
--
You received this message because you are subscribed to the Google Groups
"Thinking Sphinx" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/thinking-sphinx/-/WGU_n8SYMKkJ.
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.