【问题标题】:Unable to sort in FOSElasticaBundle无法在 FOSElasticaBundle 中排序
【发布时间】:2015-05-04 13:32:33
【问题描述】:

我在我的项目中使用 FOSElasticaBundle 来搜索广告列表。我可以得到所有结果,但我不能在“asc”或“desc”中排序。我看过不同的关于过滤的教程。但它不起作用。

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();

我不知道问题出在哪里!

【问题讨论】:

    标签: php symfony elasticsearch foselasticabundle


    【解决方案1】:

    您在代码中犯了一个错误(解析错误 + JSON 语法结构错误):

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

    【讨论】:

    • 我试过了。它在'asc'中工作。但是,不在“desc”中。我不知道为什么。
    猜你喜欢
    • 2014-03-17
    • 1970-01-01
    • 2023-04-11
    • 2022-07-19
    • 1970-01-01
    • 2020-11-11
    • 1970-01-01
    • 2019-01-20
    • 1970-01-01
    相关资源
    最近更新 更多