【go-zero】go-zero 敏感词过滤 整合 开源过滤敏感词插件 sensitive

news/2024/7/10 21:57:34 标签: golang, 开源, 敏感词过滤, 敏感词

一、背景

关于敏感词,设计的过滤与屏蔽的方案我认为有2个方向

  • 一是:我们在写入的时候,对全部的文本进行控制,让敏感词被replaced
  • 二是:我们在展示的时候,对读取的文本进行控制,让敏感词被replaced

目前我是选择的后者,考虑到写入的性能与并发性,不对写入时进行控制
在读取后添加缓存的方式进行提高读的效率

这里就看您的业务对读需求量大,还是写入,自行评估去决策

二、关于 sensitive 与 trie算法

本次使用插件是 sensitive:https://github.com/importcjj/sensitive

其实他内部还是实现的trie算法

基础算法–Trie树

trie,又称前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符串。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下,不是所有的节点都有对应的值,只有叶子节点和部分内部节点所对应的键才有相关的值。 – 维基百科

2.1、配置

首先需要加载他的字典
之前尝试过通过对象存储去加载,对比


http://www.niftyadmin.cn/n/178055.html

相关文章

什么是工程项目管理工作?其特点是什么?

什么是工程项目管理工作?其特点是什么? 工程项目管理是为了实现工程项目的有效、高效和可持续管理而进行的一系列活动。 工程项目的管理就像是驾驭一艘巨大的船只,需要一位经验丰富的船长来领导整个团队。 通过工程项目管理,项…

主题及关卡揭晓!全国智能汽车竞赛智慧交通创意组发布倒计时

「全国大学生智能汽车竞赛」是教育部倡导的大学生科技A类竞赛,是2022年全国普通高校大学生竞赛榜单内竞赛,中国高等教育学会将其列为含金量最高的大学生竞赛之一。 在全国数百所高校的支持下,全国大学生智能汽车竞赛至今已成功举办了十七届&a…

【3.23】Spring常见面试题

Spring框架 Spring基础 什么是Spring框架? Spring是一个为了简化企业级开发的开源框架。Spring提供的功能主要是Ioc和AOP。 即控制反转和面向切面编程。 Spring包含的模块有哪些? Core Container是Spring的核心模块,主要提供IoC依赖注入功能…

VUE3 学习笔记(四)彻底搞懂vite 环境变量

目录 一、环境变量 1. 在VUE3中使用vite,包含如下基本环境变量: 2. 生产环境注意 二、环境变量定义 1. 环境变量文件位置说明 2. 环境变量文件内容定义 3. 程序中使用环境变量 4. 编辑器中环境变量自动提示 5. 工作模式 一、环境变量 什么是环境变…

利用UE4生成的运动矢量(Motion Vector)在Python下对渲染图像进行前向与后向Warping

UE4产生的motion vector是后向运动矢量,具体来说,第iii帧的运动矢量MViMV_iMVi​表示第iii帧(当前帧)到第i−1i-1i−1帧(前一帧)的运动关系,换句话说,对于像素ppp,MVi[p]…

数字孪生颠覆传统铝材挤压生产,全新生产方式即将到来!

随着市场经济的发展,各种新型的高科技建筑材料相继出现,所有的基础工程均需要大量的建筑,需要大量门窗和建筑材料,而铝及其铝合金在其中占有重要的地位。随着时代的进步,材料的应用也发生着变化。因铝合金型材具有强度…

Mysql的那些事-复习贴、学习贴

1.数据库三层结构-破除 MySQL 神秘 mysql安装根目录下的data文件夹存放表 netstat -anb 查看监听端口 2. SQL 语句分类 数据库模式定义语言DDL(Data Definition Language),是用于描述数据库中要存储的现实世界实体的语言。DML一般指数据操纵语言。 数据操纵语言(Dat…

js 金额千分位(保留两位小数)

// 金额千分位(保留两位小数)// 用法: {{todaymoney|formatMoney}}export const FormatMoney (value) > {if (!value) return 0.00;var intPart Number(value) | 0; //获取整数部分let splitNums parseFloat(value).toFixed(2).split(.…