public function setRankingMode($ranker, $rankexpr = '')
{
if (!in_array($ranker, array(self::SPH_RANK_PROXIMITY_BM25, self::SPH_RANK_BM25, self::SPH_RANK_NONE, self::SPH_RANK_WORDCOUNT, self::SPH_RANK_PROXIMITY, self::SPH_RANK_MATCHANY, self::SPH_RANK_FIELDMASK, self::SPH_RANK_SPH04, self::SPH_RANK_EXPR, self::SPH_RANK_TOTAL))) {
throw new \InvalidArgumentException('Ranking mode is invalid.');
}
if (!is_string($rankexpr)) {
throw new \InvalidArgumentException('Ranking expression must be a string.');
}
if ($ranker === self::SPH_RANK_EXPR && !$rankexpr) {
throw new \InvalidArgumentException('Current ranking mode must have a ranking expression.');
}
$this->ranker = $ranker;
$this->rankexpr = $rankexpr;
return $this;
}