ooohk
ooohk 管理员 楼主
· 127 次阅读
code
type TagRule struct {
    TagName  string   // 最终显示的标签,例如 "Optimized"
    Keywords []string // 触发词,例如 ["三网优化", "9929", "4837", "cmin2"]
}

// 模拟主机圈的规则库
var Rules = []TagRule{
    {"Virtualization", []string{"kvm", "openvz", "lxc", "vmware"}},
    {"Route", []string{"cn2", "gia", "9929", "bgp", "anycast"}},
    {"Security", []string{"ddos", "cc", "waf", "防火墙", "清洗"}}, // 结合你的安全背景
    {"Price", []string{"年付", "月付", "溢价", "传家宝", "aff"}},
}

func MatchTags(content string) []string {
    content = strings.ToLower(content) // 归一化处理
    var matched []string
    
    // 这里可以用简单的遍历,也可以上 AC 自动机优化性能
    for _, rule := range Rules {
        for _, k := range rule.Keywords {
            if strings.Contains(content, k) {
                matched = append(matched, rule.TagName)
                break // 命中一个关键词就给该规则的 Tag,防止重复
            }
        }
    }
    return matched
}

> 2

SIGN测试签名
ooohk
ooohk 管理员 楼主
表情
SIGN测试签名
ooohk
ooohk 管理员 楼主
表情
SIGN测试签名
登录后即可参与讨论