I need a recommendation engine that suggests the best products to the users based on:

  • Their past purchases
  • Their preferences
  • What their friends/similar people viewed/purchased

So basically I need both collaborative and content-based suggestions from my engine. The engine should be able to swarm through my data-base, analyse the best suggestions for my users and return those suggestions.

Are there any such open-source (preferably, or even proprietary would do) recommendation engines available?

  • What software are you looking to hook into?
    – aman207
    Feb 5, 2014 at 16:37

2 Answers 2


I've been idly playing with PredictionIO for this in the past. It works quite well, although I've never put it into production.

It's amazingly simple to work with. This is the code sample they provide:

cli = predictionio.Client("<my key>")
cli.record_action_on_item("view", "HackerNews" )
# predict top preferences near a specified location
r = cli.get_itemrec_topn("myEngine", 5, {"pio_latlng":[37.9, 91.2]})

You don't give a preferred language in your question, but many people have built wrappers for it in other languages. Here's one for PHP.

There's even a prebuilt Amazon EC2 image with Prediction.IO already on it, and there aren't any hourly software fees. You can also download it directly from their website.


At Unbxd, we do exactly that. Our recommendation engine works on hybrid personalization which combines the approach of content-based and collaborative filtering to provide highly relevant recommendations.

The hybrid approach guarantees better performance with fewer drawbacks of any individual personalization techniques.

You can learn more about our recommendation engine here. unbxd.com/product-recommendations

  • Could you please edit your answer and add basic information on pricing? It seems not to come for free, though the page linked to offers a 14-day-trial. Budget often is a concern for people, so at least an order of price should be included with answers.
    – Izzy
    Aug 21, 2014 at 11:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.