PHP关键字如何匹配~

刘三刀 发布于 2013/05/03 11:32
阅读 1K+
收藏 0

假设

A文章有 1,2,3,4 四个关键字(1,2,3,4为关键字id)

B文章有2,3,4

C文有1.

查询A文章相似文章,怎么能把B,C给查出来。精确地高点的,效率高点的。。。。

加载中
0
帖子列表
帖子列表

对B、C中有多少关键词在A里面做统计,数量越高,和A的相关性就越高

刘三刀
刘三刀
回复 @李马燕 : 我是不耻下问。。。
帖子列表
帖子列表
回复 @刘三刀 : 伸手党
刘三刀
刘三刀
额,我不是求思路的,我是可耻的求代码的、、、、、
0
copperpeas
copperpeas

查询A相似文章, 首先查询A的关键字,以单个关键字为准,分别查询。

分别存入临时表或者内存或者变量中,(数据库sql本身可以去重,获取重复的语句,所以存临时表应该效率比存变量高些)经过前面的查询,临时表的数据不会太多,查询临时表中的重复文章id,每个临时表都有的,相似性最高,然后其次,然后在其次。而且可以在临时表每次相似后提取出相关文章后都可以删除临时表已经处理的数据,这样效率会更高。没思考多久,以供参考。 

刘三刀
刘三刀
棒极了
0
梅开源
梅开源
这个问题价值数千万,非只言片语好搞定
刘三刀
刘三刀
。。。。
0
斯诺登
斯诺登

应该有文章和关键字对应关系表吧?

A_K=对应关系表,字段Aid=文章id,Kid=关键字id

低效方法有:

select Aid,count(*) from A_K where Kid in (1,2,3,4) and Aid != 文章A group by Aid order by count(*) DESC

高效方法,用关系数据库都难做到高效吧,不过可以加上缓存,上面查询结果缓存起来,比如缓存1周,过期再重取

刘三刀
刘三刀
受教,
返回顶部
顶部