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;
         }
     }
 }