2015-05-04 4 views
1

Я использую FOSElasticaBundle в своем проекте для поиска списка объявлений. Я могу получить весь результат, но я не могу заказать его в «asc» или «desc». Я видел разное учебное пособие, посвященное фильтрованию. Но это не работает.Невозможно сортировать в FOSElasticaBundle

if (!empty($cati)) { 
    $query = new \Elastica\Query\Bool(); 

    if((!empty($cati)) && $cati!='1') 
    { 
     $query1 = new \Elastica\Query\Match(); 
     $query1->setFieldQuery('post.cat_id', $cati); 
     $query->addMust($query1); 
    } 
} 
else { 
    $query = new \Elastica\Query\MatchAll(); 
} 

$elasticaQuery = new \Elastica\Query(); 
$elasticaQuery->setQuery($query); 
$elasticaQuery->setSize($nbPerPage); 
$elasticaQuery->setFrom(($page - 1) * $nbPerPage); 
$elasticaQuery->addSort(array('date', array("desc")); 

$repistoryManager = $this->container->get('fos_elastica.manager'); 
$repistory = $repistoryManager->getRepository('AdsManagerBundle:Post'); 

$eq = new \Elastica\Query(); 
$eq->setQuery($query); 
$finder = $this->container->get('fos_elastica.index.ads.post'); 
$elasticaResultSet = $finder->search($eq); 
$ed = $elasticaResultSet->getResults(); 

Я не могу понять, где проблема!

ответ

1

Вы сделали в ошибке в коде (ошибка синтаксического анализа + плохое построение синтаксиса JSON):

$elasticaQuery->addSort(array('date' => 'desc')); 
+0

Я попробовал. Он работает в «asc». Но не в «поцелуе». Я не знаю почему. –

Смежные вопросы