上一篇
uni-app uni.request 请求的注意事项
在博客网站里,文章与文章之间最紧密的关系是拥有共同的关键字,其次文章同属一个大类,一个文章的相关性根据以上条件获取相近或相似的文章。
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()给文章排序,可以避免相关文章固化行为。
最新评论Latest comments