Content-based filtering approach in recommendation and discovery engines typically has big search queries spanning hundreds of clauses. In Metataste[http://www.metataste.com] we have a genome of over a thousand keywords of five types - genre, subgenre, plot, feeling. Whenever user rates or favorites a movie, we update the users taste vector over this genome, adding weights to all the tags that occur in that movie the user just liked. Over time we get to know what kind of tags appeal to user in his movies. Then, when a user is looking for any movie, whether doing a search or asking for recommendations, we also send the user's taste vector in a search query to Elasticsearch, so that the movies that score highly on user's taste vector can be shown first. The full-text search with varied boosting at field match and query clause match gives the results that the user might like based on their previous choices. Elastic search is a great tool for dong searches with hundreds of clauses, at lightning speed.
Build complex AI
Collaborative filtering is another approach typically used in recommendation engines. Often on e-commerce sites, you will see "People who like this also like.." That is a collaborative filtering approach to recommendations. It is especially useful when you have a sparse dataset to generate content-based recommendations. While content-based recommendations are more accurate in general, collaborative filtering approach or more complex Machine Learning can be mixed with it, to throw more surprises at the user. Using Elasticsearch, it is easy to do collaborative filtering and deeper AI. For Collaborative filtering using Elasticgraph, one can find out within a SINGLE QUERY - "the users with common favorite movies, along with the most liked movies by those users, which are not seen by this user."
One can experiment with an individual as well as a mixed approach of collaborative and content filtering to get the best results. There is no one best way to give recommendations. In fact, a user must be given recommendations with multiple strategies, explaining why any recommendation is being made. For ex. Because the User X with whom your taste matches closely has liked these movies that you haven't watched. The aforementioned strategy uses both collaborative and content strategies. Every domain and database is unique, and so is the personalized search and discovery strategy that works on it.