package main
import (
"fmt"
"github.com/syyongx/go-wordsfilter"
)
//屏蔽敏感词
func main() {
wf := wordsfilter.New()
root, _ := wf.GenerateWithFile("sensitive.txt")
//替换
newStr := wf.Replace("不可描述XXXX", root)
//打印替换好的文本
fmt.Println(newStr)
}
- 需要找个合适的敏感词库,再根据需要自定义一些敏感词
- 可在第一次启动项目时,将预定的敏感词写入数据库,后通过对数据库的增删改去更新敏感词的数据表
- 每次启动项目可以将数据库中的词库写入敏感词词典文件,再加载进去
- 在项目运行过程中,希望修改敏感词词库后生效,需要定义一个手动刷新的接口
- 每次刷新操作实际上是将Redis的自增键+1
- 可通过协程任务检查Redis的自增键是否大于0,如果大于0就重新加载词典
- 每加载成功一次,将自增键-1