FOSElasticaBundle结果与Doctrine结果不同?

时间:2014-04-05 17:46:31

标签: symfony doctrine-orm foselasticabundle

为什么以下查询会返回不同的结果?更多细节

  • 我希望获得所有活跃的帖子,请按顺序排序。
  • Doctrine2返回我的预期结果,但不返回FOSElasticaBundle
  • Doctrine2返回所有记录,但FOSElasticaBundle只返回10条第一条记录,但请忽略这一点,因为即使Doctrine的前10条记录与FOSElasticaBundle的记录不同。

FOSElasticaBundle查询:

    /** @var TransformedFinder $finder */
    $finder = $this->container->get('fos_elastica.finder.index_name.post');
    $query = new Query();
    $filter = new Term(array('status' => PostModel::STATUS_ACTIVE));
    $query->setFilter($filter);
    $query->addSort(array('tttAt' => array('order' => 'desc')));
    $posts = $finder->find($query);

Doctrine2查询:

    $posts = $this
        ->getDoctrine()
        ->getRepository('ItlizedFairdomBundle:Post')
        ->findBy(array('status' => PostModel::STATUS_ACTIVE), array('tttAt' => 'DESC'));

1 个答案:

答案 0 :(得分:0)

我刚刚找到原因:ES不与MySQL同步,因为MySQL中的数据是导入的,因此ES不知道数据库更改(插入,更新或删除,......)。

运行app/console fos:elastica:populate后,结果现在相同......

我的坏!谢谢@Tomdarkness:)