public function addMovie($parameters) { $movie = new Movies(); $movie->setTitle($parameters['title']); $movie->setGenre($parameters['genre']); $movie->setYear($parameters['year']); $moviesDAO = new MoviesDAO(); $result = $moviesDAO->addDetails($movie); return $result; }
public function getRecommendations(Movies $movie) { try { $connection = $this->getConnection($this->enginenode, 'engine', 'movies'); $query = '{ "size": "10", "query": { "filtered": { "filter": { "and": [ { "has_child": { "type": "recommendations", "filter": { "and": [ { "terms": { "recommendedid": [ "' . $movie->getMovieId() . '" ] } }, { "range": { "score": { "gte": 0.95 } } } ] } } } ] } } } }'; $response = $connection->request('_search', \Elastica\Request::POST, json_decode($query, true)); $result = array(); $recommendations = $response->getData()['hits']['hits']; if (count($recommendations) > 0) { for ($idx = 0; $idx < count($recommendations[$idx]); $idx++) { array_push($result, $recommendations[$idx]['_source']); } } return $result; } catch (Exception $e) { throw new MovieRecommedationFailedException('Failed to recommend movies', $e); } }