雨风的个人网站(分享一些学习笔记)

青箬笠,绿蓑衣,细雨斜风不须归
 
 
相关文章功能的实现 (2016/10/27 10:45:20)
分类:网站开发 | 标签:相关文章 相似文章 相关性 关联度 

 

 经常在网络上看到“相关文章”或“相似文章”功能,昨天晚上突发奇想,也想在我的网站上实现。睡前躺床上想了一下大概流程及数据库表的设计,一会就睡着了(个人习惯,想事情很快就会入睡

今天早上上班后立马开始着手实现,首先对数据库表进行了设计。结构如下:

文章关系表(文章id1,文章id2,关联度)


然后对程序做了设计:

添加文章的时候:

这个功能是基于关键字的,我文章中的各个关键字是以英文的逗号","进行隔开的,所以通过split函数将各个关键字取出来。将得到的关键字去按照文章表理的标题和关键字进行模糊查找。

select id from artile where title (like '%keyword%' or keywords like '%keyword%') and id<>本文id请注意红色部分内容,不能将自己查出来了)

将查找结果填充在记录集recordset里,然后遍历这个记录集。

遍历的时候,需要查询遍历到的文章id是否和本文章已经建立和关联(因为有些文章关联度高,通过关键字建立的关联度>1),如果没有建立关联,则建立;如果已经建立关联,则关联度+1

do while not recordset.eof

    set rs1=server.createobject("adodb.recordset")

    rs1.open "select * from article_relation where (articleid=本文id and articleid1=recordset.id) or (articleid1=recordset.id and articleid=本文id)",conn,1,3

    (请注意以上代码红色部分,recordset.id=遍历到的文章id。为了减少数据冗余,id1和id2的关联等于id2和id1的关联,所以用关键字or查询)

    if rs1.recordcount>1 then

        (如果关联已经存在,则关联度+1)

        rs1("关联度")=rs1("关联度")+1

    else

        (如果不存在管理,则建立)

        rs1.addnew

        rs1("文章id1")=本文id

        rs1("文章id2")=遍历到的id,recordset.id

        rs1("关联度")=1

        rs1.update

    end if

    rs1.close

loop

至此,关联表已经建立。


编辑文章功能,为了保证关联度准确,得先将原有的关联删除,再按照以上思路建立新的关联:

delete * from 文章关联表 where 文章id1=本文id or 文章id2=本文id


删除文章功能则用以上代码直接将关联删除。


显示相关文章:

 "select top n * from 文章关联表 where 文章id1=本文id or 文章id2=本文id order by 关联度 desc"

查询前n条相关文章,因为关联是双向的,所以查询的时候既要查文章id1又要查文章id2,查询结果按照关联度降序显示。

比如本文id为3,关联度表为以下内容:

文章id1
文章id2
关联度
1
2
2
1
3
1
232
3
4
1

运行查询代码后,得到的结果如下:

文章id1
文章id2
关联度
1
3
1
2
3
2
3
4
1

这样就存在文章id3既在文章id1中,又在文章id2中的现象。所以在显示的时候做了如下处理:

if 本文id=文章id1 then

    显示文章id2

else

    显示文章id1

end if

总之就是不能显示本文id本身。


这样,就实现了相关文章功能。

阅读(3329) | 评论(0)
相关文章
暂无相关文章!
评论
暂无评论!
昵称: * QQ:
Email: Website:
内容: *
验证码:  显示/刷新验证码 *
文章分类
电脑网络(3)
多耐特(1)
微信公众平台(3)
网站开发(3)
计算机基础(0)
智慧校园(1)
其他分类(0)
 
热门文章
一个简单的收缩菜单(15029)
asp版微信公众平台开发代码(7945)
个人订阅号实现网页获取用户openid(asp版)(7528)
asp微信公众平台申请及开发设置(6018)
迷宫求解(js)(4076)
 
热门标签
asp(5050,3)  webservice(4077,1)  xml(3818,1)  微信公众平台(353,2)  关联度(,1)  订阅号(,1)  订阅号网页(,1)  网页获取openid(,1)  微信平台开发(,1)  学习笔记(,1)  迷宫求解(,1)  云技术(,1)  javascript(,1)  相关性(,1)  相似文章(,1)  相关文章(,1)  智慧教室(,1)  msxml2.XmlHttp(,1)  ubuntu(,1)  乌班图(,1)  甲骨文云(,1)  Nosupportedauthenticationmethodsavailable(,1)  批处理(,1)  bat(,1)  订阅号获取openid(,1)  批量修改文件名(,1)  publickey(,1)  msxml3.dll(,1)  系统未找到制定资源(,1)  折叠菜单(,1)  收缩菜单(,1)  .netframework(,1)  urlencode(,1)  ren(,1)  
 
最新评论
© 雨风的个人网站(分享一些学习笔记) 2016-2022 版权所有 渝ICP备2021003333号-1