首页/ 填坑/ 文章详情

浅淡构建相关的文章功能

在博客网站里,文章与文章之间最紧密的关系是拥有共同的关键字,其次文章同属一个大类,一个文章的相关性根据以上条件获取相近或相似的文章。

Posts表结构:

MySQLCREATE TABLE `posts` (
  `post_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '文章id',
  `post_author` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '作者id',
  `post_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '文章创建日期',
  `post_content` longtext NOT NULL COMMENT '文章内容',
  `post_title` text  NOT NULL COMMENT '文章标题',
  `post_cover` varchar(255) NOT NULL DEFAULT '' COMMENT '文章封面图片',
  `post_status` varchar(20)  NOT NULL DEFAULT 'publish' COMMENT '文章状态',
  `post_type` varchar(20) NOT NULL DEFAULT 'post' COMMENT '文章类型',
  `post_pageview` bigint(20) NOT NULL DEFAULT '0' COMMENT '文章阅读数',
  PRIMARY KEY (`post_id`),
  KEY `post_author` (`post_author`),
  KEY `type_status_date` (`post_type`,`post_status`,`post_date`,`post_id`)
)

想要进一步加强文章之间的关联系,博客网站文章要么专攻某领域的内容,要么人为性的技术调整。

获取关键字相关文章:

MySQLSELECT post_id,post_title FROM posts 
WHERE post_id != 当前文章id AND (post_title like '%关键字%' OR post_content like '%关键字%') AND post_status='publish' 
ORDER BY RAND() 
LIMIT 0,6; 

思路讲解:

- 排除当前的文章,已展示
- 模糊查询文章标题或内容,多个关键字OR连接
- 不限文章类别,只查询已发布文章,全库查询
- 文章排序随机展示,充分深挖文章库

※ PHPAnalysis可以提炼文章内的关键字,实测效果不理想,妥妥还是手动操作。

当热情退去,原本文章更新速度由日更变月更,变年更,甚至断更,导致博客网站的文章库存数不足,相关文章不足以100%展示,数量不够,只能从其它方面补足。

补充缺少相关文章:

MySQLSELECT post_id,post_title FROM posts 
WHERE post_id NOT IN(排除文章id集) AND term_id = 类id AND post_status='publish' 
ORDER BY RAND() 
LIMIT 0,不足的数量;

思路讲解:

- 排除上一条SQL出现过的文章id,包括现在的文章id
- 选择当前文章同属下大类的文章
- 文章排序随机展示,充分深挖文章库
- 补充缺少的文章

※  在查询中,使用RAND()给文章排序,可以避免相关文章固化行为。

文章评论0 records

最新 最早

0

最新评论Latest comments

big2catbig2cat 08-27 16:11
然而没什么用,smartpss不兼容老录像机,就算能看回放,很多时间点在回放里也看不到
HentaiCatHentaiCat 2020-12-30 10:22
考科目二全程很紧张,考了三次才过,有次侧方入库直接pass,100分扣完,呜呜呜~
猫猫酱猫猫酱 2020-11-12 10:56
一入多肉深似海,说多都是泪
soulkunsoulkun 2020-11-05 15:54
IconFont的图标真的很好用!!!
无限链霉球菌无限链霉球菌 2020-11-03 11:41
药店,了解一下(`・ω・´)