对于相关主题列表,我使用带有标签的查询。它显示 5 篇文章的列表,这些文章具有 1 个或多个共同标签且早于查看的文章。
是否可以编写一个查询,通过对具有 2,3,4... 共同标签的文章给予更多权重来产生更相关的结果?
我看到这个主题或多或少是同一主题:MySQL 查找相关文章 https://stackoverflow.com/questions/4717093/mysql-find-related-articles
but it 如果公共标签少于 3 个,则生成 0 个结果.
我现在使用的查询:
SELECT DISTINCT
AAmessage.message_id, AAmessage.title, AAmessage.date
FROM
AAmessage
LEFT JOIN
AAmessagetagtable
AS child ON child.message_id = AAmessage.message_id
JOIN AAmessagetagtagtable
AS parent ON parent.tag_id = child.tag_id
AND
parent.message_id = '$message_id'
AND AAmessage.date < '$row[date]'
ORDER BY
AAmessage.date DESC LIMIT 0,5
使用表格:
AAmessage (message_id, title, date...)
AAmessagetable (key, message_id, tag_id)
AAtag (tag_id, tag.... not used in this query but needed to store names of tags)