Пример #1
0
 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;
 }
Пример #2
0
 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);
     }
 }