Module: Recommendations::Item::Similarity

Included in:
Recommendations::Item
Defined in:
lib/recommendations/item/similarity.rb

Instance Method Summary collapse

Instance Method Details

#similars(count = Recommendations.configuration.similar_count) ⇒ Object



4
5
6
# File 'lib/recommendations/item/similarity.rb', line 4

def similars(count = Recommendations.configuration.similar_count)
  Recommendations.redis.zrange("recommendations:similars:#{id}", 0, count - 1)
end

#update_similarsObject



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/recommendations/item/similarity.rb', line 8

def update_similars
  Recommendations.redis.del("recommendations:similars:#{id}")

  categories.each do |category, score|
    items = Recommendations.redis.hgetall("recommendations:categories:#{category}")

    items.reject {|k, v| k == id}.each do |item, item_score|
      difference = (Float(item_score) - Float(score)).abs
      Recommendations.redis.zincrby("recommendations:similars:#{id}", difference, item)
    end
  end
end