2014-04-05 281 views
0

爲什麼以下查詢返回不同的結果?更多詳情FOSElasticaBundle結果與Doctrine結果不同嗎?

  • 我想獲取所有活動帖子,請按tttAt降序排列。
  • Doctrine2返回我的預期結果,但不FOSElasticaBundle
  • Doctrine2返回所有記錄,但FOSElasticaBundle只返回10第一的記錄,但請忽略這一點,因爲即使從學說前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')); 
+0

什麼是您的ES索引中'post'類型的映射?你能提供一些樣本結果嗎? – Tomdarkness

回答

0

我剛剛找到了原因:因爲在MySQL中的數據導入ES沒有與MySQL同步,所以ES做不知道數據庫更改(插入,更新或刪除...)。

運行app/console fos:elastica:populate後,結果現在是一樣的...

我的壞!謝謝@Tomdarkness :)