コード例 #1
0
 /**
  * Delivers a JSON response for videos matching a provided title
  * Expects query param "title" for the title value.
  *
  * @requestParam string title Text used for searching against video titles
  * @requestParam int limit Limit the number of results returned
  */
 public function searchVideosByTitle()
 {
     $searchConfig = new Wikia\Search\Config();
     $title = $this->getVal('title');
     $limit = $this->getVal('limit');
     $mm = $this->getVal('mm', '80%');
     if (empty($title)) {
         throw new Exception("Please include a value for 'title'.");
     }
     $searchConfig->setVideoTitleSearch(true)->setQuery($title)->setMinimumMatch($mm);
     if (!empty($limit)) {
         $searchConfig->setLimit($limit);
     }
     $queryService = $this->queryServiceFactory->getFromConfig($searchConfig);
     $minDuration = $this->getVal('minseconds');
     $maxDuration = $this->getVal('maxseconds');
     if ($minDuration && $maxDuration) {
         $queryService->setMinDuration($minDuration)->setMaxDuration($maxDuration);
     }
     $log = WikiaLogger::instance();
     $log->info(__METHOD__ . ' - Querying SOLR', ['method' => __METHOD__, 'title' => $title, 'limit' => $limit, 'mm' => $mm, 'minDuration' => $minDuration, 'maxDuration' => $maxDuration]);
     $this->getResponse()->setFormat('json');
     $this->getResponse()->setData($queryService->searchAsApi());
 }