Mysql,类似主题

时间:2011-07-22 14:53:59

标签: mysql tags similarity

嗨伙计们!

我有3张桌子:

topics
(id*, title, body) 

tags
(id*,name)

topic_tags
(topic_id,tag_id)

每个主题都有一些标签。我想找到另一个主题的“最相关”主题,仅基于标签(而不是基于主题的标题和正文)。

如果更常见的标签2主题,它们更相关。我想通过相似性(=​​常见标签的数量)以某种方式对结果进行排序。

你有什么建议?

1 个答案:

答案 0 :(得分:3)

SELECT  tr.*
FROM    topic t
JOIN    topic_tag tt
ON      tt.topic_id = t.id
JOIN    topic_tag ttr
ON      ttr.tag_id = tt.tag_id
JOIN    topic tr
ON      tr.id = ttr.topic_id
WHERE   t.id = $topicid
GROUP BY
        tr.id
ORDER BY
        COUNT(*) DESC