Open Source Recommendation engine
Recommendation engine used in Amazon and Netflix use complex algorithms. We can use our own using some of the open source applications.
Apache Mahout is the best recommendation engine in Java I have found. But, there are recommendation engines as well in Java:
One place to start looking for a recommendation engine is Taste - Taste is a collaborative filtering engine for Java. Taste takes as input users' preferences for items and returns estimated preferences for other items. Taste includes a number of CF algorithms including Item-Item recommendations and user-based recommendations.
Taste is very well engineered with a very clean programming model. Here's an example of creating a Slope-One Recommender:
Using the recommender is as easy as:
There are a number of models and algorithms to try out.