/** * Builds the string used with filter queries based on search config * @return string */ protected function getFilterQueryString() { $namespaces = []; foreach ($this->config->getNamespaces() as $ns) { $namespaces[] = Utilities::valueForField('ns', $ns); } $minArticleQuality = $this->config->getMinArticleQuality(); $filters = [sprintf('(%s)', implode(' OR ', $namespaces)), Utilities::valueForField('wid', $this->config->getCityId())]; if ($minArticleQuality) { $filters[] = Utilities::rangeIntValueField('article_quality_i', $minArticleQuality); } return implode(' AND ', $filters); }
/** * @covers Wikia\Search\Utilities::rangeIntValueField */ public function testRangeIntValueField() { $this->assertEquals('(xx:[* TO 44])', Utils::rangeIntValueField('xx', null, 44)); $this->assertEquals('(xx:[55 TO *])', Utils::rangeIntValueField('xx', 55)); $this->assertEquals('(xx:[22 TO 33])', Utils::rangeIntValueField('xx', 22, 33)); }