Ich versuche herauszufinden, wie Artikel mit übereinstimmenden Tags nach der Anzahl der übereinstimmenden Tags sortiert werden.Artikel mit übereinstimmenden Tags nach Anzahl der Tags sortieren, die übereinstimmen
Angenommen, Sie haben drei MySQL-Tabellen:
tags(tag_id, title)
articles(article_id, some_text)
articles_tags(tag_id, article_id)
Lassen Sie uns jetzt sagen, Sie vier Artikel, wo:
article_id = 1
Tags hat " Humor, "" f unny, "und" urkomisch. "
article_id = 2
hat Tags "lustig", "albern" und "doof".
article_id = 3
hat Tags "lustig", "albern" und "doof".
article_id = 4
hat das Etikett "vollständig ernst."
Sie müssen alle Artikel zu article_id = 2
mit mindestens einem passenden Tag finden und die Ergebnisse in der Reihenfolge der besten Übereinstimmungen zurückgeben. Mit anderen Worten, article_id = 3
sollte zuerst kommen, mit article_id = 1
Sekunde, und article_id = 4
sollte überhaupt nicht angezeigt werden.
Ist das etwas, das in SQL-Abfragen oder alleine machbar ist, oder ist es für etwas wie Sphinx besser geeignet? Wenn erstere, welche Art von Abfrage sollte durchgeführt werden, und welche Art von Indizes sollte für die performantesten Ergebnisse erstellt werden? Wenn letzteres, bitte erweitern Sie.
Die zweite Syntax ist fantastisch und funktionierte genau so, wie ich es brauchte. Vielen Dank! –