protected function getNewArticlesFromSolr($ns, $limit, $minArticleQuality) { $searchConfig = new Wikia\Search\Config(); $searchConfig->setQuery('*')->setLimit($limit)->setRank('default')->setOnWiki(true)->setWikiId($this->wg->wgCityId)->setNamespaces($ns)->setMinArticleQuality($minArticleQuality)->setRank(\Wikia\Search\Config::RANK_NEWEST_PAGE_ID)->setRequestedFields(['html_en']); $results = (new Factory())->getFromConfig($searchConfig)->searchAsApi(['pageid' => 'id', 'ns', 'title_en' => 'title', 'html_en' => 'abstract', 'article_quality_i' => 'quality'], false, 'pageid'); return $results; }
protected function getConfigById($wikiId, $articleId) { $searchConfig = new Config(); $searchConfig->setQuery('*')->setLimit(1)->setPage(1)->setWikiId((int) $wikiId)->setVideoSearch(false)->setOnWiki(true)->setPageId((int) $articleId)->setNamespaces([self::NAMESPACE_SETTING]); return $searchConfig; }
/** * Returns wikia Config for cross wiki search build on request data * @return Wikia\Search\Config */ protected function getConfigCrossWiki() { $request = $this->getRequest(); $searchConfig = new Wikia\Search\Config(); $lang = $request->getArray('lang'); if (in_array(self::ALL_LANGUAGES_STR, $lang)) { $lang = ['*']; } $searchConfig->setQuery($request->getVal('query', null))->setLimit($request->getInt('limit', static::CROSS_WIKI_LIMIT))->setPage($request->getVal('batch', 1))->setRank($request->getVal('rank', 'default'))->setHub($request->getArray('hub', null))->setInterWiki(true)->setCommercialUse($this->hideNonCommercialContent()); if (!empty($lang)) { $searchConfig->setLanguageCode($lang); } //this will set different boosting $searchConfig->setBoostGroup('CrossWikiApi'); return $searchConfig; }
/** * @param $query * @param $hubs * @param $lang * @return array */ public function queryForWikias($query, $hubs, $lang) { $crossWikiSearchConfig = new Config(); $crossWikiSearchConfig->setQuery($query)->setLimit(self::CROSS_WIKI_RESULTS)->setPage(1)->setRank('default')->setInterWiki(true)->setCommercialUse($this->getHideNonCommercialContent())->setLanguageCode($lang); if (!empty($hubs)) { $crossWikiSearchConfig->setHubs($hubs); } $crossWikiResultSet = (new Factory())->getFromConfig($crossWikiSearchConfig)->search(); $crossWikiResults = $crossWikiResultSet->toArray(["sitename_txt", "url", "id", "description_txt", "lang_s", "score", "description_txt"]); return $crossWikiResults; }
/** * @group Slow * @slowExecutionTime 0.07538 ms * @covers \Wikia\Search\Config::getQuery */ public function testGetQuery() { $config = new \Wikia\Search\Config(); $this->assertNull($config->getQuery()); $query = "foo and: bar & baz"; $config->setQuery($query); $this->assertInstanceOf('Wikia\\Search\\Query\\Select', $config->getQuery()); $this->assertAttributeContains($query, 'rawQuery', $config->getQuery()); $config = new \Wikia\Search\Config(['query' => 'foo']); $this->assertInstanceOf('Wikia\\Search\\Query\\Select', $config->getQuery()); }