Module: Recommendations::Item::Similarity
- Included in:
- Recommendations::Item
- Defined in:
- lib/recommendations/item/similarity.rb
Instance Method Summary collapse
- #similars(count = Recommendations.configuration.similar_users_count) ⇒ Object
- #update_similars ⇒ Object
Instance Method Details
#similars(count = Recommendations.configuration.similar_users_count) ⇒ Object
4 5 6 |
# File 'lib/recommendations/item/similarity.rb', line 4 def similars(count = Recommendations.configuration.similar_users_count) Recommendations.redis.zrange("recommendations:similars:item:#{id}", 0, count - 1) end |
#update_similars ⇒ Object
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:item:#{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:item:#{id}", difference, item) end end end |