J'essaie de savoir comment commander des articles avec des étiquettes correspondantes par le nombre d'étiquettes qui correspondent.Commander des articles avec les mots-clés correspondants par le nombre de mots-clés qui correspondent
Disons que vous avez trois tables MySQL:
tags(tag_id, title)
articles(article_id, some_text)
articles_tags(tag_id, article_id)
Maintenant que vous avez quatre articles où:
article_id = 1
a des balises " humour, "" f unny, "et" hilarant ".
article_id = 2
a des balises "funny", "stupide", et "goofy".
article_id = 3
a des balises "funny", "stupide" et "goofy".
article_id = 4
a l'étiquette "complètement grave".
Vous devez trouver tous les articles liés à article_id = 2
par au moins un tag correspondant, et retourner les résultats dans l'ordre des meilleurs résultats. En d'autres termes, article_id = 3
devrait venir en premier, avec article_id = 1
deuxième, et article_id = 4
ne devrait pas apparaître du tout.
Est-ce quelque chose qui est faisable dans les requêtes SQL ou seul, ou est-ce mieux adapté à quelque chose comme Sphinx? Si le premier, quel type de requête devrait être fait, et quel genre d'index devrait être créé pour les résultats les plus performants? Si ce dernier, s'il vous plaît ne développez.
La deuxième syntaxe est fantastique et a fonctionné exactement comme je le souhaitais. Merci beaucoup! –