gpt4 book ai didi

php - 学说顺序通过匹配分数多个表

转载 作者:行者123 更新时间:2023-11-29 19:28:59 24 4
gpt4 key购买 nike

知道如何使用学说查询构建器在 ORDER BY 中添加分数吗?以下查询抛出 Expected end of string, got '+' 错误。

$qb = $this->createQueryBuilder('i')
->select(
'partial i.{ '.$fields.' }',
'partial c.{ id, title, description }',
'partial c2.{ id }',
'partial ch.{ id, name, icon, description }',
'partial t.{ id, tagname }',
"MATCH($searchFields) AGAINST(:searchTerm BOOLEAN) as score1",
'MATCH(t.tagname) AGAINST(:searchTerm BOOLEAN) as score2'
)
->join('i.categories', 'c')
->leftJoin('c.parent', 'c2')
->leftJoin('i.tags', 't')
->join('i.status', 's')
->join('c.channel', 'ch')
->join('ch.company', 'co')
->where("(MATCH($searchFields) AGAINST(:searchTerm BOOLEAN) > 5 OR MATCH(t.tagname) AGAINST(:searchTerm BOOLEAN) > 5 )")
->setParameters([
'searchTerm' => $searchTerm.'*',
])
->orderBy('score1 + score2', 'DESC');

最佳答案

没关系,我通过简单地将字段添加在一起就解决了这个问题。多哈。

 $qb = $this->createQueryBuilder('i')
->select(
'partial i.{ '.$fields.' }',
'partial c.{ id, title, description }',
'partial c2.{ id }',
'partial ch.{ id, name, icon, description }',
'partial t.{ id, tagname }',
"(MATCH($searchFields) AGAINST(:searchTerm BOOLEAN) + MATCH(t.tagname) AGAINST(:searchTerm BOOLEAN)) as score"
)

关于php - 学说顺序通过匹配分数多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41931756/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com