小编Mic*_*aas的帖子

原则:如果不选择至少一个根实体别名,则无法通过标识变量选择实体

我在查询构建器中使用以下代码,以选择平均得分值,以及该平均值所属的类别实体:

$queryBuilder = $this->createQueryBuilder('s')
    ->resetDQLPart('select')
    ->select('AVG(s.score) as score, partial c.{reviewCategoryID} as cat')
    ->setParameter('status', ReviewStatusType::ACCEPTED)
    ->join('s.review', 'r')
    ->join('s.category', 'c')
    ->where('r.campsite = :campsite')
    ->andWhere('r.status = :status')
    ->setParameter('campsite', $campsite)
    ->groupBy('c.reviewCategoryID');
Run Code Online (Sandbox Code Playgroud)

$campsite 是评论所属的实体,而评分属于评论,评分具有类别.

但是当我尝试执行此操作时,我收到错误

Error: Cannot select entity through identification variables without choosing at least one root entity alias.
Run Code Online (Sandbox Code Playgroud)

当我调试并检查根别名时,我看到's'已定义,应该是根实体(Score).

知道什么可能是错的吗?

doctrine doctrine-query doctrine-orm

16
推荐指数
1
解决办法
3万
查看次数

Solr结果分组,每组不同的限制

我正在开发一个项目,我需要从Solr索引中选择文档.结果按名为rank的字段排序.然而,问题是前3个结果应该是优质结果,这是由不同的领域定义的,例如溢价.

现在我知道我可以对结果进行分组,例如:

group.query=rank[0 TO 100]
Run Code Online (Sandbox Code Playgroud)

group.query=premium[1]
Run Code Online (Sandbox Code Playgroud)

我可以通过添加来限制这些结果

group.limit=LIMIT
Run Code Online (Sandbox Code Playgroud)

但此限制适用于所有组.

有没有办法只将此限制应用于第一组,以便我可以限制溢价结果只返回3个文件?

solr

3
推荐指数
1
解决办法
1082
查看次数

标签 统计

doctrine ×1

doctrine-orm ×1

doctrine-query ×1

solr ×1