예제 #1
0
 public function testOrderModeExtended()
 {
     $criteria = new ESphinxSearchCriteria();
     $criteria->sortMode = ESphinxSort::EXTENDED;
     try {
         $criteria->addOrder('', '');
         $this->setExpectedException('ESphinxException');
     } catch (Exception $e) {
         $this->assertInstanceOf('ESphinxException', $e);
     }
     try {
         $criteria->addOrder('field', 'OSC');
         $this->setExpectedException('ESphinxException');
     } catch (Exception $e) {
         $this->assertInstanceOf('ESphinxException', $e);
     }
     $criteria->addOrder('field1', 'asc');
     $criteria->addOrder('field2', 'DESC');
     $this->assertEquals($criteria->getOrders(), array('field1' => 'ASC', 'field2' => 'DESC'));
     $criteria->cleanOrders();
     $this->assertEquals($criteria->getOrders(), array());
     $criteria->addOrders(array('field1' => 'asc', 'field2' => 'desc'));
     $this->assertEquals($criteria->getOrders(), array('field1' => 'ASC', 'field2' => 'DESC'));
 }
예제 #2
0
 public function testExtendedSort()
 {
     $sphinx = $this->createConnection();
     $criteria = new ESphinxSearchCriteria();
     $criteria->sortMode = ESphinxSort::EXTENDED;
     $criteria->addOrder('user_id', 'ASC');
     $criteria->addOrder('id', 'DESC');
     $query = new ESphinxQuery('', 'article', $criteria);
     $result = $sphinx->executeQuery($query);
     $this->assertEquals($result->getFound(), 5);
     $this->assertEquals($result[0]->id, 1);
     $this->assertEquals($result[1]->id, 2);
     $this->assertEquals($result[2]->id, 3);
     $this->assertEquals($result[3]->id, 5);
     $this->assertEquals($result[4]->id, 4);
 }