如何根据Doctrine中的相关性对结果进行排序?

时间:2014-07-11 05:25:02

标签: symfony doctrine

我写了一个DQL来找到一些结果,我希望它能返回最好的前10个结果,如何根据Doctrine中的相关性对结果进行排序?

$posts = $this->getEntityManager() ->createQuery('SELECT p FROM AcmeDemoBundle:Post p WHERE p.title LIKE :word') ->setParameter('word', '%' . $word . '%') ->setMaxResults(10) ->getResult();

1 个答案:

答案 0 :(得分:0)

我认为这个问题与我的问题类似:

How to use Doctrine_RawSql for a fulltext search and sorting by relevance

所以,我明白了。

根据MySQL全文自然语言搜索文档:

  

当在WHERE子句中使用MATCH()时,如前面所示的示例,返回的行将首先自动排序,具有最高的相关性。相关性值是非负浮点数。零相关意味着没有相似性。相关性的计算基于行中的单词数,该行中唯一单词的数量,集合中单词的总数以及包含特定单词的文档(行)数。