日期:2014-05-17  浏览次数:20470 次

相关文章 的实现方法。
例如,我现在有一个网站 ,有 1000万条文章数据。

通过文章标题,找出每个文章的相关文章。

我想问问大家这个怎么实现。

-------------------------------------------------
我想了一个实现方法是这样的。

先把文章标题进行分词。

例如:我爱我家的装潢 (分成:我爱,我家,的,装潢 )

然后把每一个词建一个表,表里只有一个文章ID字段,

create table 我爱(
id int //文章ID
)
create table 我家(
id int
)

查询相关文章的时候。

select * from (
(select * from 我爱 )
union
(select * from 我家 ) group by id as rank
) order by rank desc limit 0,10

词是中文的,我想把中文加密成MD5值,当表名用,不过又怕MD5值重复。
这个怎么解决。

我是菜鸟。。。
-------------------------------------
------解决方案--------------------
文章表(id,title,content,...)
关键词表(id,keyword)
关联表(articleid,keywordid) --一个文章有多条记录
try:
select * from 文章表 where id in(
select articleid   --查关联文章ID
from 关联表 a
where exists(select 1 from 关联表 where keywordid=a.keywordid and articleid=12345)--此为当前文章ID
group by articleid
having count(*)>=5 --关联词至少5篇
)