Currently recommender system considering several factor like semantic based approach, contextual approach etc. If your data is very huge you can use Hadoop for data storage or for data organizing you can use ontological approach such as neo4j into your system.