0 votes

Obtenez les articles les plus populaires dans Grails

Mon modèle de domaine simplifié dans grails est comme ceci :

Article {
    Integer totalViews
    static hasMany = [
        ratings: Rating
    ]
}

Rating {
    Integer value // 1 à 5
    User user
}

Je cherche à trouver les 5 articles les plus populaires basés sur le total de vues et les évaluations, disons un poids de 25% sur les vues et un poids de 75% sur les évaluations.

Comment le feriez-vous en Groovy/Grails ?

2voto

leebutts Points 4372

Je vais probablement essayer cela avec une requête HQL, la version criteriaBuilder serait assez complexe.

Je ne suis pas sûr de quel serait le meilleur algorithme pour le poids que vous voulez. Mais sans cela, vous auriez besoin de quelque chose comme:

from Article a order by avg(a.ratings.value) desc, a.totalViews desc

Ensuite limitez la requête à 5 résultats

Article.executeQuery('from Article...', max:5)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X