[TOC]
IKAnalyzer 是一个开源的,基于java语言开发的轻量级的中文分词工具包。
官网: https://code.google.com/archive/p/ik-analyzer/
本用例借助 IKAnalyzer 进行分词,通过遍历分词集合进行敏感词过滤。
使用前需对敏感词库进行初始化: SensitiveWordUtil.init(sensitiveWordSet);
分词器底层
1 | private static List segment(String text) throws IOException { |
用户发起点赞、取消点赞后先存入 Redis 中,再每隔两小时从 Redis 读取点赞数据写入数据库中做持久化存储。
设点赞人的 id 为 likedPostId,被点赞人的 id 为 likedUserId ,点赞时状态为 1,取消点赞状态为 0。将点赞人 id 和被点赞人 id 作为键,两个 id 中间用 :: 隔开,点赞状态作为值。
所以如果用户点赞,存储的键为:likedUserId::likedPostId,对应的值为 1 。
取消点赞,存储的键为:likedUserId::likedPostId,对应的值为 0 。
取数据时把键用 :: 切开就得到了两个id,也很方便。
在可视化工具 RDM 中看到的是这样子
数据库表中至少要包含三个字段:被点赞用户id,点赞用户id,点赞状态。再加上主键id,创建时间,修改时间就行了。
建表语句:
1 | create table `user_like`( |
开启定时任务持久化存储到数据库
定时任务 Quartz 很强大,就用它了。