一种消息过滤方法和装置的制造方法

文档序号:8430755阅读:135来源:国知局
一种消息过滤方法和装置的制造方法
【技术领域】
[0001] 本发明涉及消息过滤技术,具体涉及一种消息过滤方法。
【背景技术】
[0002] 随着网络规模的不断扩大,用户对于集中化要求越来越高,快速处理消息对网络 信息进行有效的管理,为客户提供优质的服务,是提高提高企业的竞争力的关键。各行业中 的网络管理系统中会需要采集和处理来自多个专业的海量消息和性能实时数据,为了保证 快速发现、定位和处理目标消息,必须设计和实施高效的消息过滤机制,将目标消息从海量 消息中过滤出来。
[0003]目前的消息过滤方式主要有两种,基于逻辑表达式的求值和基于RETE算法的规 则引擎的计算。
[0004] 基于逻辑表达式求值,是将过滤规则定义为一个逻辑表达式,然后在执行过滤时, 将实时消息的对应字段值替换到逻辑表达式中,然后进行逻辑表达式求值。如果结果为真, 说明过滤规则成立,否则说明过滤规则不成立。但是由于业务场景情况,有些关键字段在各 个规则中出现的频次很高,如果按照逻辑表达式分别进行求值,那么在各个过滤规则中对 于重复的字段表达式就造成了重复求值、重复计算,给有限的资源造成了极大的浪费,同时 降低了消息过滤的效率。
[0005] 基于RETE算法的规则引擎计算,是将所有过滤规则都导入规则引擎,由RETE算法 对规则计算进行优化,减少重复求值。其中使用了多线程技术来提高计算速度。但是由于 RETE算法处理对于规则计算并未进行深入优化,所以效率往往较低,并且耗费大量CPU时 间。
[0006] 因此一种简便高效快速的完成消息过滤的方法和装置亟待出现。

【发明内容】

[0007] 本发明提供一种消息过滤方法,其特征在于,所述方法包括:
[0008] 将所有过滤条件按照逻辑关系进行级别划分;
[0009] 在各级中根据所述各过滤条件的出现频次对所述各过滤条件进行编号,并按照所 述级别和所述编号升序将各过滤条件进行存储;
[0010] 从低级别中的各过滤条件开始对接收的消息进行过滤计算,按照次低级别中的各 过滤条件对所述低级别过滤计算的计算结果进行过滤计算,按所述各级别中各过滤条件的 编号存储该过滤条件的计算结果,依次完成所有级别中所有过滤条件的过滤计算;
[0011] 依使用者需求按照相应级别过滤条件的过滤计算结果过滤消息。
[0012] 优选的,所述将所有过滤条件按照逻辑关系进行级划分的方法具体为:
[0013] 将单个字段的一个过滤条件划分为零级过滤条件;
[0014] 不同字段的所述零级过滤条件以"与"、"或"中任一种逻辑关系组合的划分为壹级 过滤条件;
[0015] 所述各级过滤条件是多个低一级过滤条件以相同的逻辑关系组合而成;
[0016] 相邻两级所述过滤条件中的逻辑关系相反;
[0017] 可根据实际过滤情况确定过滤条件划分的级别数量。
[0018] 具体的,将所有过滤条件按照逻辑关系划分为四级:
[0019] 零级过滤条件为将单个字段的一个过滤条件划分的Sub_condition子条件;
[0020] 壹级过滤条件为多个不同字段的Sub_c〇nditi〇n子条件相"与"组合成的 Condition条件;
[0021] 威级过滤条件为多个Condition条件相"或"组合成的Filter过滤器;
[0022] 叁级过滤条件为多个Filter过滤器相"与"组合成的Rule过滤规则。
[0023] 进一步的,所述在各级中根据所述各过滤条件的出现频次对所述各过滤条件进行 编号的方法具体为:
[0024] 分别对所述各级中的过滤条件按照出现频次由高到底进行升序编号;
[0025] 对所述各级中出现频次最高的过滤条件编号为0 ;
[0026] 更进一步的,所述按照所述级和所述编号升序将各过滤条件进行存储的方法为:
[0027] 按照各级中所述过滤条件编号升序,分别存储各级过滤条件的条件名称、条件值 和该过滤条件编号。
[0028] 详细的,所述从低级别中的各过滤条件开始对接收的消息进行过滤计算,按照次 低级别中的各过滤条件对所述低级别过滤计算的计算结果进行过滤计算的方法具体为:
[0029] 将所述消息中字段的值代入包含所述字段的所述低级别过滤条件中,对所述代入 值的低级别过滤条件进行逻辑计算,获得低级别过滤计算结果;
[0030] 将所述低级别过滤计算结果代入所述次低级别中的各过滤条件,按照所述次低级 别中各过滤条件描述的逻辑关系进行逻辑计算。
[0031] 优选的,所述按各级别中各过滤条件的编号存储该过滤条件的计算结果的方法具 体为:
[0032] 为所述各级别过滤条件创建结果数组;
[0033] 依照所述各级别结果数组下标与所述各级别中各过滤条件编号相同的原则,将该 过滤条件的计算结果存储至该级别结果数组中的相应位置。
[0034] 详细的,所述将所述低级别过滤计算结果代入所述次低级别中的各过滤条件,按 照所述次低级别中各过滤条件描述的逻辑关系进行逻辑计算的方法为:
[0035] 根据所述次低级别过滤条件,获取该次低级别过滤条件中所包含的低级别过滤条 件,将所述获取的低级别过滤条件的计算结果代入所述次低级别过滤条件中;
[0036] 按照所述次低级别过滤条件描述的各低级别过滤条件逻辑关系,对所述代入的低 级别过滤条件结果进行逻辑计算。
[0037] 优选的,所述方法还包括:
[0038] 为所述各过滤条件赋予过滤条件ID;
[0039] 根据消息过滤使用者发送的过滤条件ID,根据所述该过滤条件的过滤计算结果过 滤消息。
[0040] 本发明还公开一种消息过滤装置,其特征在于,所述装置包括:
[0041] 级别划分单元,用于将所有过滤条件按照逻辑关系进行级别划分;
[0042] 编号单元,用于在所述级别划分单元划分的各级中根据所述各过滤条件的出现频 次对所述各过滤条件进行编号;
[0043] 过滤计算单元,用于从低级别中的各过滤条件开始对接收的消息进行过滤计算, 按照次低级别中的各过滤条件对所述低级别过滤计算的计算结果进行过滤计算,将各级的 过滤计算结果发送给存储单元;
[0044] 存储单元,用于按照所述级别划分单元划分的级别和所述编号单元编号的升序将 各过滤条件进行存储,并按各级别中各过滤条件的编号存储该过滤条件的计算结果;
[0045] 消息过滤单元,用于根据所述过滤计算单元计算的最高级别过滤条件的过滤计 算结果过滤消息。
[0046] 优选的,所述级别划分单元根据如下方法进行过滤条件的级别划分:
[0047] 将单个字段的一个过滤条件划分为零级过滤条件;
[0048] 不同字段的所述零级过滤条件以"与"、"或"中任一种逻辑关系组合的划分为壹级 过滤条件;
[0049] 各级所述过滤条件是多个低一级过滤条件以相同的逻辑关系组合而成;
[0050] 相邻两级所述过滤条件中的逻辑关系相反;
[0051] 可根据实际过滤情况确定过滤条件划分的级别数量。
[0052] 详细的,所述编号单元进一步包括:
[0053] 频次统计模块,用于统计各级别中每个过滤条件的出现频次;
[0054] 编号模块,用于根据所述频次统计模块统计的各级别中每个过滤条件的出现频 次,按照所述出现频次由高到低分别对各级别中的过滤条件进行编号,对所述各级中出现 频次最_的过滤条件编号为0。
[0055] 详细的,所述存储单元进一步包括:
[0056] 过滤条件存储模块,用于按照编号模块对各级中所述过滤条件的编号升序,分别 存储每级过滤条件的条件名称、条件值和该过滤条件编号;
[0057] 结果数组,用于依照所述各级别结果数组下标与所述各级别中各过滤条件编号相 同的原则,将所述过滤计算单元计算的该过滤条件的计算结果存储至该级别结果数组中的 相应位置。
[0058] 详细的,所述过滤计算单元进一步包括:
[0059] 值代入模块,用于将所述接收消息的字段值或低级别过滤条件的计算结果代入所 述过滤条件存储模块中的各级别过滤条件中;
[0060] 计算模块,用于根据所述代入的各级别过滤条件描述的逻辑关系,对所述值代入 模块代入的字段值或低级别过滤条件的计算结果进行逻辑计算;
[0061] 结果发送模块,用于将所述计算模块计算的逻辑计算结果发送给所述结果数组。
[0062] 进一步的,所述过滤条件存储模块存储为所述各过滤条件赋予过滤条件ID;
[0063] 所述结果发送模块根据消息过滤使用者发送的过滤条件ID,根据所述该过滤条件 的过滤计算结果过滤消息后发送给消息过滤使用者。
[0064] 本发明通过过滤条件级别划分,将海量的过滤条件进行了优化,进行级别划分后, 各级别中各过滤条件的逻辑关系非常清晰,基于对过滤条件按照一定的逻辑关系进行分 级,可对已分级的过滤条件进行压缩,根据各级别中各过滤条件的出现频次将各过滤条件 进行存储,即使得各过滤条件中所涉及的字段仅需要进行一次过滤计算,避免了现有技术 中对所有出现的字段重复计算造成的资源浪费,又使出现频次高的过滤条件排在前面,利 用逻辑条件惰性求值的特点,进一步节约了计算时间,提高了逻辑计算的效率;本发明通过 存储各级过滤计算结果,将各级计算结果存入结果数组,基于上层过滤结果的层层过滤计 算时只需要访问简单的结果数组取值,进行简单的逻辑计算,即可获得最高级别的过滤规 则值,取值和计算过程都是简单的对数的操作和计算,可大幅度提高逻辑计算的效率,即提 高消息过滤的效率。
【附图说明】
[0065] 图1为本发明实施例一提供的一种消息过滤方法的流程示意图;
[0066] 图2为本发明实施例二提供的方法流程图;
[0067] 图3为本发明实施例三提供的一种消息过滤装置的结构示意图。
【具体实施方式】
[0068] 以下将配合图式及实施例来详细说明本发明的实施方式,藉此对本发明如何应用 技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
[0069] 在实际的消息过滤应用中,不同的使用者会根据自身需求设定一些过滤条件,这 些过滤条件有的简单有的复杂,但均是对需要过滤的消息中某些字段值进行条件限定,满 足条件限定的,即满足过滤条件,最简单的过滤条件是对一个字段的条件限定,复杂的过滤 条件是对多个字段的多个条件限定,每个字段的条件限行间又存在一定的逻辑关系。传统 的过滤计算方法,对于简单的过滤条件,只需要进行一步简单
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1