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

学校网站登录入口西安百度关键词包年

学校网站登录入口,西安百度关键词包年,JS获取wordpress地址,做网站的基本功能目录 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.hrbkazy.com/news/37740.html

相关文章:

  • 国外买域名的网站seo基础入门视频教程
  • wordpress是英文的怎么办惠州百度seo排名
  • 企业网站如何更新备案信息推广app网站
  • 免费网站源码下载国际最新新闻
  • 深圳网站建设选云聚达百度竞价开户3000
  • 网站外包哪家公司好西安优化seo
  • 做游戏都需要什么网站seo专业论坛
  • wordpress文章定时发布b2b网站推广优化
  • 培训网站排名枫树seo网
  • 广州网站改版 网站建设手机版谷歌浏览器入口
  • 贸易公司做网站西安网站seo服务
  • 免费门户网站建设网站统计分析工具的主要功能
  • 一个服务器可以做多个网站吗广东网约车涨价
  • 做权重网站百度用户客服电话
  • 简单网站制作教程网站托管
  • 梅州专业网站建设教程seo网站推广方式
  • 百度不收录手机网站吗新疆今日头条新闻
  • 手工做耳环银材料哪个网站可以买到长沙网站推广公司
  • 泉州网站建设报价seo兼职招聘
  • 定做网站建设朋友圈广告
  • 石家庄自适应网站建设太原百度seo
  • 辛集网站建设哪家好广州推广seo
  • 东阿企业做网站推广谷歌流量代理代理
  • 公司做网站买域名之后做什么河南最近的热搜事件
  • php 网站 服务器谷歌seo是什么意思
  • 胶州网站建设电话各大引擎搜索入口
  • 温州网站建设方案书郑州网站seo公司
  • 品牌型网站建设方案谷歌google搜索引擎入口
  • APP和网站是一样吗站长工具app下载
  • 手机营销型网站制作seo优化快速排名