public function testSortBy() { $criteria = new ESphinxSearchCriteria(); $criteria->sortMode = ESphinxSort::ATTR_ASC; $criteria->setSortBy('field'); $this->assertEquals($criteria->getSortBy(), 'field'); $criteria->setSortBy(null); $this->assertNull($criteria->getSortBy()); }
private function applyOrder(ESphinxQlCriteria $criteria, ESphinxSearchCriteria $queryCriteria) { $order = null; if ($queryCriteria->sortMode == ESphinxSort::EXTENDED) { if ($orderArray = $queryCriteria->getOrders()) { $order = $this->implodeKV($orderArray); } } else { if ($queryCriteria->getSortBy()) { $order = $queryCriteria->getSortBy() . ' '; switch ($queryCriteria->sortMode) { case ESphinxSort::ATTR_ASC: $order .= 'ASC'; break; case ESphinxSort::ATTR_DESC: $order .= 'DESC'; break; case ESphinxSort::RELEVANCE: $order = '@weight DESC'; break; default: throw new ESphinxException('Not implemented for Sphinx Ql connection'); } } } if ($order) { if ($queryCriteria->groupBy) { $criteria->withinGroupOrder = $order; } else { $criteria->order = $order; } } }