当前位置: 首页 > news >正文

学校网站登录入口临沂网站seo

学校网站登录入口,临沂网站seo,唐山网站开发公司,万网虚拟主机免费空间目录 1. 建立敏感词数据库表2. 定时任务,读数据并建立敏感词树2.1 开启定时任务2.2 读数据并建立敏感词树 3. 使用 思路: 将敏感词都存到数据库表中定时读取数据到内存中,构建敏感词前缀树写工具方法,使用内存中的前缀树判断消息…

目录

  • 1. 建立敏感词数据库表
  • 2. 定时任务,读数据并建立敏感词树
    • 2.1 开启定时任务
    • 2.2 读数据并建立敏感词树
  • 3. 使用

思路:

  1. 将敏感词都存到数据库表中
  2. 定时读取数据到内存中,构建敏感词前缀树
  3. 写工具方法,使用内存中的前缀树判断消息中是否包含敏感词或完成替换操作

1. 建立敏感词数据库表

CREATE TABLE `bad_words` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id',`content` text COMMENT '敏感词内容',`create_user_id`bigint(20) unsigned COMMENT '创建用户id',`extra` text COMMENT '扩展信息',`create_time` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',`modify_time` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '修改时间',`status` int DEFAULT 0 COMMENT '0存在,1删除',PRIMARY KEY (`id`)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;

2. 定时任务,读数据并建立敏感词树

项目启动的时候,开始执行这一块。

2.1 开启定时任务

var (ctx          context.ContextBadWordsTrie *BadWordsTrieNode
)func InitCronLoader() {var err errorctx = context.Background()err = getBadWordsAndInitBadWordsTrie() // 初始化敏感词树if err != nil {panic(err)}gocron.Every(3).Minutes().Do(getBadWordsAndInitBadWordsTrie)go func() {<-gocron.Start()}()
}

2.2 读数据并建立敏感词树

func getBadWordsAndInitBadWordsTrie() error {// 从数据库获取信息badWordsList := getBadWordsFromDB()// 初始化敏感词树BadWordsTrie = initTrie(badWordsList)return nil
}func getBadWordsFromDB() []string {badWords := make([]*models.BadWord, 0)caller.LyhTestDB.Debug().Table(models.TableNameBadWord).Where("status=0").Find(&badWords)badWordsList := make([]string, 0)for _, item := range badWords {if item.Content != "" {badWordsList = append(badWordsList, item.Content)}}return badWordsList
}func initTrie(badWordsList []string) *BadWordsTrieNode {root := &BadWordsTrieNode{}for _, word := range badWordsList {addWord(root, word)}return root
}type BadWordsTrieNode struct {Children map[rune]*BadWordsTrieNode
}func addWord(root *BadWordsTrieNode, word string) {node := rootfor _, char := range word {if node.Children == nil {node.Children = make(map[rune]*BadWordsTrieNode)}if _, ok := node.Children[char]; !ok {node.Children[char] = &BadWordsTrieNode{}}node = node.Children[char]}
}

3. 使用

可以写到工具中

// 检查是否包含敏感词
func CheckBadWords(message string) bool {return isContain(message, cronloader.BadWordsTrie)
}// 将敏感词字符替换为*
func CheckAndReplaceBadWords(message string) string {return replaceBadWords(message, '*', cronloader.BadWordsTrie)
}// 将敏感词字符替换为自定义字符
func CheckAndReplaceBadWordsWithSep(message string, sep rune) string {return replaceBadWords(message, sep, cronloader.BadWordsTrie)
}func isContain(message string, root *cronloader.BadWordsTrieNode) bool {message = strings.ToLower(message)runes := []rune(message)for i := 0; i < len(runes); i++ {p := rootj := ifor j < len(runes) && p.Children != nil {char := runes[j]if _, ok := p.Children[char]; ok {p = p.Children[char]j++} else {break}}if p.Children == nil {return true}}return false
}func replaceBadWords(message string, sep rune, root *cronloader.BadWordsTrieNode) string {message = strings.ToLower(message)runes := []rune(message)for i := 0; i < len(runes); i++ {p := rootj := ifor j < len(runes) && p.Children != nil {char := runes[j]if _, ok := p.Children[char]; ok {p = p.Children[char]j++} else {break}}if p.Children == nil {for k := i; k < j; k++ {runes[k] = sep}}}return string(runes)
}
http://www.zhongyajixie.com/news/39654.html

相关文章:

  • 做网站 java c黄山搜索引擎优化
  • 阿里云网站主体变更怎么做免费搭建网站
  • 最新企业网站系统朋友圈广告
  • 建设淘宝客网站seo的形式有哪些
  • 无锡做网站哪里好免费智能seo收录工具
  • 公司优化网站的案例河南疫情最新情况
  • 给网站做伪静态google搜索排名优化
  • wordpress当前页询价广州网络seo公司
  • 国内最大的摄影网站友情链接有用吗
  • 广州专业网站建设免费网站或软件
  • 做cpa用单页网站好还是2023年10月疫情恢复
  • 怎么更换网站logo百度浏览器网址
  • 做网站需要购买网站空间吗自己创建一个网站需要多少钱
  • 个人网站做联盟营销百度安装下载
  • 建立个人网站主题网站建设开发外包公司
  • 深圳卓富通做网站没有限制的国外搜索引擎
  • 企业网站seo运营搜狗seo刷排名软件
  • 网站英文域名是什么做灰色词seo靠谱
  • 苏州松陵镇哪里做网站企业网络营销方法
  • 网站建设软件排行个人免费开发网站
  • 政府网站群集约化建设百度旗下的所有产品
  • 做网站工作描述百度识图官网
  • 长滚动页网站怎么做网址大全123
  • 学网站建设难不难软文关键词排名推广
  • 金坛网站制作网络推广员的前景
  • 南昌做网站开发的公司制作自己的网站
  • 淘宝装修做代码的网站全国人大常委会副委员长
  • 网站后台添加图片链接简述网络营销的特点及功能
  • wordpress 婚纱摄影高级seo课程
  • 新蔡县住房和城乡建设局网站外贸平台排名