zoukankan      html  css  js  c++  java
  • 高性能关键字过虑组件KFilter

    KFilter是一个高性能的关键字过滤组件,它提供了灵活的过滤机制能自适应大小写,半全角,简繁和分隔符处理等。在一台I7的电脑上KFilter处理6k个关键字单线程每秒可以达到上千万字检索的效能。

    关键字识别

    KFilter的关键字处理是非常灵活,它不紧识别关键字本身,对该关键字的大小写,半全角,简繁和分隔符等都会归纳到识别范围内。

     

    KFilter在处理数字和英文的时候也做了一些其他方面的工作,主要防止错杀的情况;如ava,java显然不是属于AV这个关键字范围。

    使用

    KFilter使用起来非常方便,只需要创建Keyword对象即可

                Keyword kw = new Keyword();
                kw.Add("av");
                kw.Matchs("java");
    在添加关键字后就可以进行匹配操作,Keyword的主要方法有IsMatch,Match,Matchs和Replace方法。主要满足使用情况的需要

    IsMatch

    用于检测一个字符是存在关键字

    Match
    获取第一个匹配的关键字项
    Matchs
    获取所有匹配关键字项
    Replace
    替换所有匹配项,替换字符通过Keywork.ReplaceData设置替换字符。

    Keywork所有方法都是线程安全。

    性能

    KFilter虽然存在多样性的匹配模式,但性能也比较出色在E1230V2的CPU下6k关键字每秒可以检索上千万字。检索结构通过树的方式处理,词的每个字符都会拆分到对应节点中。

    下载 [说明:未经许可不能用于商业应用]

    访问Beetlex的Github
  • 相关阅读:
    JAVA环境变量的配置
    中国大学MOOC-翁恺-C语言程序设计习题集-解答汇总
    1009. 说反话 (20)
    akoj-1162-计算表达式
    akoj-1153-p次方求和
    akoj-1055-矩阵乘法
    akoj-1076-Encoding
    C语言程序设计进阶 翁恺 第4周编程练习
    akoj-1272-字母统计
    akoj-1267-独木舟上的荡漾
  • 原文地址:https://www.cnblogs.com/smark/p/2892686.html
Copyright © 2011-2022 走看看