现在有文章表,标签表,文章标签关系表,其中文章和标签 多对多
现在在一篇文章详情页,该文章有 a,b,c三个标签,需要按照标签匹配度提取相关文章并排序,匹配度高的排前面。
匹配度的计算方式,按照匹配标签的个数计算,拥有相同标签的个数越多,匹配度越高。
求除了穷举之外的算法,一定要考虑性能
给文章的每个 标签tag
设置一个 权重weight
,然后计算每篇文章的 权重值和
,最后根据 权重降序
即得到文章
复杂度:O(n)
建议有空看看 数学之美
这本书;会有很多收获的
demo:
文章id tag
1 a,b,c
2 a,b,d
3 a,c,d
4 d,e,f
5 a,b,c
假设 a,b,c
的权重是 1,2,3
那么就有:
文章id tag 权重
1 a,b,c 6
2 a,b,d 3
3 a,c,d 4
4 d,e,f 0
5 a,b,c 6
文章1
的相关文章就是: 5,3,2,4
倒排索引。
一看就像是为redis定制的任务。。。
正文完