针对手机号黑名单的快速过滤方法技术领域
本发明涉及一种通讯过滤方法,特别涉及一种针对手机号黑名单的快速过滤方
法。
背景技术
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是
要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁
的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字
比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中
间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。
重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找
不成功。哈希查找的本质是先将数据映射成它的哈希值。哈希查找的核心是构造一个哈希
函数,它将原来直观、整洁的数据映射为看上去似乎是随机的一些整数。
在短信发送过程中,对商家信息有过退订或者投诉的终端用户,我们必须阻止商
家向这些手机用户发送短信,这样的手机号称之为发送黑名单。商家在做会员通知或商品
促销的通知短信发送时,通常会提交大量的会员手机号码进行发送,系统必须在几秒内完
成数十万甚至数百万的手机号过滤。同时,黑名单的规模在3000W以上,且时常更新。采用传
统的算法,二分查找或哈希查找,在这2个方面都对系统高峰处理能力产生较大影响,大大
降低系统的吞吐能力。
发明内容
本发明的目的在于提供一种针对手机号黑名单的快速过滤方法。
一种针对手机号黑名单的快速过滤方法,包括如下步骤:
(1)将手机号转换成4字节整数;
(2)将转换成的4字节整数按字节分开,前2个字节建立位置索引,为第一级索引;
(3)将第三个字节建立成第二级索引,每个1级索引指向256个2级索引;
(4)最后一个字节为3级索引,由256个BIT位构成;
(5)对具体手机号的过滤将按位置索引逐级判断。
所述手机号由13,15,17,18开始。
与现有技术相比,本发明具有如下有益效果:本发明的过滤方法,大大提高了手机
号过滤的性能,满足了高效和迅速的内容过滤,过滤性能约是二分查找的20倍以上,同时在
更新时几乎对系统无任何影响,大大优于顺序存储等方法。
附图说明
图1是本发明针对手机号黑名单的快速过滤方法逻辑框图。
具体实施方式
下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保
护范围并不受具体实施方式的限制。
一种针对手机号黑名单的快速过滤方法,包括如下步骤:
(1)将手机号转换成4字节整数;
(2)将转换成的4字节整数按字节分开,前2个字节建立位置索引,为第一级索引;
(3)将第三个字节建立成第二级索引,每个1级索引指向256个2级索引;
(4)最后一个字节为3级索引,由256个BIT位构成;
(5)对具体手机号的过滤将按位置索引逐级判断。
所述手机号由13,15,17,18开始。
目前行业内对手机号过滤通常采用二分查找或哈希查找。这2种方法在查找性能
上基本够满足系统需求,但在更新和存储上是很大问题。由于手机号库频繁更新,且规模庞
大,因此这2个方法不能很好满足需要。本发明的方法,基本是按照位置查找,复杂度基本为
1,可提供更高的查找性能。同时,在更新时也是基于位置查找,且使用的存储是属于动态增
长过程,不会对已有数据产生任何影响。通过我们的测试,该方法在查找性能上是二分查找
的20倍左右,同时在频繁更新过程中对过滤没有任何影响。
以上公开的仅为本发明的具体实施例,但是,本发明并非局限于此,任何本领域的
技术人员能思之的变化都应落入本发明的保护范围。