Acts as taggable on and Thinking Sphinx Integration

This post tells you how to using the thinking sphinx rails plugin to search a bunch of records that have a specific tag (acts_as_taggable_on).

class Photo < ActiveRecord::Base
  ...
 
  acts_as_taggable_on :keywords
 
  define_index do
    indexes :caption
    indexes keywords.name, :as => :keywords
  end
 
  ...
end

Now lets assign some tags to our Photo

>> photo = Photo.create :user_id => 1, :caption => 'BMW M7', :keyword_list => 'BMW, Car'
>> photo.keywords
=> [#<Tag id: 1, name: "BMW">, #<Tag id: 3, name: "Car">]

Lets run the indexer

# rake thinking_sphinx:index

Now lets test it...

>> Photo.search 'Car'
=> [#<Photo id: 100, caption: "BMW M7", user_id: 1, publication_state: "Unpublished", created_at: "2009-11-20 00:00:47", updated_at: "2009-11-20 00:00:47", image_file_name: nil, image_content_type: nil, image_file_size: nil, image_updated_at: nil>]
>> Photo.search('Car').first.keywords
=> [#<Tag id: 1, name: "BMW">, #<Tag id: 3, name: "Car">]

Search by tags only

>> Photo.search :conditions => {:keywords => 'Car'}
=> [#<Photo id: 100, caption: "BMW M7", user_id: 1, publication_state: "Unpublished", created_at: "2009-11-20 00:00:47", updated_at: "2009-11-20 00:00:47", image_file_name: nil, image_content_type: nil, image_file_size: nil, image_updated_at: nil>]

Comments

Anonymous's picture

Thx for tips :)

Thx for tips :)

Post new comment

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <c>, <cpp>, <drupal5>, <drupal6>, <java>, <javascript>, <php>, <python>, <ruby>. The supported tag styles are: <foo>, [foo].

More information about formatting options