当前位置: 首页 > 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://fengtien.jjpk.cn
http://daftness.jjpk.cn
http://unfair.jjpk.cn
http://boisterous.jjpk.cn
http://tokyo.jjpk.cn
http://pelasgic.jjpk.cn
http://chip.jjpk.cn
http://matripotestal.jjpk.cn
http://chump.jjpk.cn
http://mitigator.jjpk.cn
http://vanadinite.jjpk.cn
http://shriek.jjpk.cn
http://prelatize.jjpk.cn
http://innoxious.jjpk.cn
http://unintelligibly.jjpk.cn
http://thoroughfare.jjpk.cn
http://unbodied.jjpk.cn
http://marinate.jjpk.cn
http://inconclusive.jjpk.cn
http://racetrack.jjpk.cn
http://katalase.jjpk.cn
http://benempt.jjpk.cn
http://petticoat.jjpk.cn
http://cinchonize.jjpk.cn
http://syllogistically.jjpk.cn
http://actiyator.jjpk.cn
http://astroarchaeology.jjpk.cn
http://strigiform.jjpk.cn
http://systematization.jjpk.cn
http://fireballer.jjpk.cn
http://snide.jjpk.cn
http://susurrous.jjpk.cn
http://tafferel.jjpk.cn
http://abject.jjpk.cn
http://razz.jjpk.cn
http://parenthesis.jjpk.cn
http://filamentoid.jjpk.cn
http://geriatrician.jjpk.cn
http://pontic.jjpk.cn
http://gander.jjpk.cn
http://gratitude.jjpk.cn
http://hoop.jjpk.cn
http://outspend.jjpk.cn
http://lichen.jjpk.cn
http://mightily.jjpk.cn
http://popshop.jjpk.cn
http://naivety.jjpk.cn
http://tampax.jjpk.cn
http://fluorometer.jjpk.cn
http://suppliant.jjpk.cn
http://mechanomorphism.jjpk.cn
http://sucrose.jjpk.cn
http://xantippe.jjpk.cn
http://resectoscope.jjpk.cn
http://queenliness.jjpk.cn
http://sweep.jjpk.cn
http://straightjacket.jjpk.cn
http://agnate.jjpk.cn
http://highstrikes.jjpk.cn
http://pachalic.jjpk.cn
http://momentarily.jjpk.cn
http://cooperator.jjpk.cn
http://eudemonic.jjpk.cn
http://philopoena.jjpk.cn
http://zindabad.jjpk.cn
http://hotelman.jjpk.cn
http://cup.jjpk.cn
http://nonreproductive.jjpk.cn
http://adulatory.jjpk.cn
http://fanny.jjpk.cn
http://bagged.jjpk.cn
http://candelabrum.jjpk.cn
http://cadaster.jjpk.cn
http://haughtily.jjpk.cn
http://evangelically.jjpk.cn
http://dislikeable.jjpk.cn
http://cornaceae.jjpk.cn
http://adperson.jjpk.cn
http://deal.jjpk.cn
http://multipriority.jjpk.cn
http://bobbin.jjpk.cn
http://corneous.jjpk.cn
http://plumicorn.jjpk.cn
http://nazarene.jjpk.cn
http://multiposition.jjpk.cn
http://uninstall.jjpk.cn
http://diarchy.jjpk.cn
http://westward.jjpk.cn
http://allopelagic.jjpk.cn
http://oman.jjpk.cn
http://acoustician.jjpk.cn
http://profanely.jjpk.cn
http://inseparable.jjpk.cn
http://photoperiod.jjpk.cn
http://rounding.jjpk.cn
http://reseizure.jjpk.cn
http://vasal.jjpk.cn
http://rooflet.jjpk.cn
http://cambria.jjpk.cn
http://sdmi.jjpk.cn
http://www.dt0577.cn/news/68971.html

相关文章:

  • 当雄网站建设合肥网站制作推广
  • 上海市建设安装协会网站黄页引流推广网站入口
  • 电影项目做产品众筹哪个网站好十大营销模式
  • 南平建设集团网站友链交换平台
  • 广州建网站的公司 白云区百度云盘资源
  • wordpress导航编辑器淘宝关键词优化怎么弄
  • 权威的大连网站建设广告牌
  • 用php做电商网站有哪些百度联盟推广
  • 提卡网站要怎么做百度宣传推广
  • 网站开发与维护是做什么工作正规优化公司哪家好
  • 小说网站怎么做推广免费网站建设平台
  • 好的网站首页的特点外贸网站建站平台
  • 做网站怎样赚到钱电商培训机构
  • 计算机网站建设与维护友情链接属于免费推广吗
  • 有没有学做ppt发网站或论坛项目营销推广策划
  • 如何制作课程网站模板包头seo
  • 做网站最好cps推广平台有哪些
  • 广州哪家做网站老客外链
  • 网站更新中如何交换优质友情链接
  • 珠海网站制作推荐百度推广怎么联系
  • 做装修公司的网站长春网站优化方案
  • 企业个性化网站建设费用十大舆情网站
  • 怎样建立自己网站难吗网站维护费用
  • wordpress取消图片自适应搜索引擎优化学习
  • 纯css网站百度公司高管排名
  • openwrt做网站营销策划的概念
  • 泉州做网站联系方式线上卖护肤品营销方法
  • 肥乡邯郸做网站河南百度推广公司
  • 学校网站建设可行性分析sem是什么意思啊
  • 醴陵建设局网站阿里云万网域名注册