CN107357862B - 话单排重方法及装置 - Google Patents
话单排重方法及装置 Download PDFInfo
- Publication number
- CN107357862B CN107357862B CN201710525767.XA CN201710525767A CN107357862B CN 107357862 B CN107357862 B CN 107357862B CN 201710525767 A CN201710525767 A CN 201710525767A CN 107357862 B CN107357862 B CN 107357862B
- Authority
- CN
- China
- Prior art keywords
- ticket
- target
- call
- binary
- character string
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000008707 rearrangement Effects 0.000 claims description 32
- 238000012545 processing Methods 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 24
- 230000015654 memory Effects 0.000 description 22
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000008030 elimination Effects 0.000 description 3
- 238000003379 elimination reaction Methods 0.000 description 3
- 238000004140 cleaning Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
- G06F16/24556—Aggregation; Duplicate elimination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/64—Automatic arrangements for answering calls; Automatic arrangements for recording messages for absent subscribers; Arrangements for recording conversations
- H04M1/65—Recording arrangements for recording a message from the calling party
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/64—Automatic arrangements for answering calls; Automatic arrangements for recording messages for absent subscribers; Arrangements for recording conversations
- H04M1/65—Recording arrangements for recording a message from the calling party
- H04M1/656—Recording arrangements for recording a message from the calling party for recording conversations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Mobile Radio Communication Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例提供一种话单排重方法及装置。该方法包括:获取目标话单的至少一个关键字,并将至少一个关键字构成字符串;采用至少一个哈希函数,分别对字符串进行哈希运算,得到至少一个哈希值;获取预设的二进制数组中至少一个哈希值分别标识的位置上的二进制数;根据二进制数组中至少一个哈希值分别标识的位置上的二进制数,确定字符串是否被二进制数组记录过;若字符串没有被二进制数组记录过,则确定目标话单不是重复话单。本发明实施例提高了话单排重方法的效率。
Description
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种话单排重方法及装置。
背景技术
由于同一个用户终端可能同时接入多个基站,导致多个基站同时对用户的通话进行记录,使得同一通话出现多个话单,因此,需要对重复的话单进行排除。
现有技术中,话单排重方法可以概括为三大类,基于文件的排重、基于内存和文件系统混合排重、基于内存索引堆的排重解决方案。首先,基于文件的排重方案,提取话单记录中的关键信息生成特征串,按照一定规则将其存放在不同目录下的不同文件中,处理一条话单记录时,如果在对应特征串文件中找到相同特征串的记录则表示出现重复,否则将这条话单记录写入话单文件,并将特征串添加至对应的特征串文件。其次,基于内存和文件系统混合排重方案中,将一定时间内的排重信息加载到进程私有内存中,采用内存排重,在此时间之外的采用文件排重。主要包括以下几个步骤:步骤1:加载排重配置信息(记录格式信息、排重类型等)到内存中。步骤2:将一定时间(可配置)内的排重信息加载到私有内存中。步骤3:内存排重:根据内存中的过滤信息进行剔重处理。步骤4:文件排重:根据文件中的历史过滤信息进行剔重处理。排重信息在内存中的存储结构,具备HASH列表和时间窗两大特征。再次,基于内存索引堆的排重方案中,将排重索引内存划分为对应磁盘的多个内存索引堆,每个内存索引堆与对应磁盘中的话单索引文件对应;根据接收的话单文件及内存索引堆中对应的话单索引文件,对话单文件进行排重,生成新的话单索引文件;将内存索引堆中的新话单索引文件保存到对应的磁盘。
但是,现有技术中的几种话单排重方法的效率较低。
发明内容
本发明实施例提供一种话单排重方法及装置,以提高话单排重方法的效率。
本发明实施例的一个方面是提供一种话单排重方法,包括:
获取目标话单的至少一个关键字,并将所述至少一个关键字构成字符串;
采用至少一个哈希函数,分别对所述字符串进行哈希运算,得到至少一个哈希值,其中,一个哈希函数对应一个哈希值;
获取预设的二进制数组中所述至少一个哈希值分别标识的位置上的二进制数;
根据所述二进制数组中所述至少一个哈希值分别标识的位置上的二进制数,确定所述字符串是否被所述二进制数组记录过;
若所述字符串没有被所述二进制数组记录过,则确定所述目标话单不是重复话单。
本发明实施例的另一个方面是提供一种话单排重装置,包括:
获取模块,用于获取目标话单的至少一个关键字,并将所述至少一个关键字构成字符串;
计算模块,用于采用至少一个哈希函数,分别对所述字符串进行哈希运算,得到至少一个哈希值,其中,一个哈希函数对应一个哈希值;
所述获取模块还用于获取预设的二进制数组中所述至少一个哈希值分别标识的位置上的二进制数;
确定模块,用于根据所述二进制数组中所述至少一个哈希值分别标识的位置上的二进制数,确定所述字符串是否被所述二进制数组记录过;若所述字符串没有被所述二进制数组记录过,则确定所述目标话单不是重复话单。
本发明实施例提供的话单排重方法及装置,通过至少一个哈希函数分别对目标话单的关键字构成的字符串进行哈希运算,得到至少一个哈希值,根据哈希值标识的二进制数组中的二进制数,确定字符串是否被二进制数组记录过,如果字符串没有被二进制数组记录过,则确定目标话单不是重复话单,如果字符串被二进制数组记录过,则进一步将目标话单的至少一个关键字与历史话单对应的至少一个关键字分别进行匹配,如果匹配则确定所述目标话单是重复话单,即并不是每一次话单排重都要进行关键字的匹配,相比于现有技术,提高了话单排重方法的效率。
附图说明
图1为本发明实施例提供的话单排重方法流程图;
图2为本发明另一实施例提供的话单排重方法流程图;
图3为本发明另一实施例提供的话单排重方法流程图;
图4为本发明另一实施例提供的话单排重方法流程图;
图5为本发明实施例提供的话单排重装置的结构图;
图6为本发明另一实施例提供的话单排重装置的结构图。
具体实施方式
图1为本发明实施例提供的话单排重方法流程图。本发明实施例针对现有技术中的几种话单排重方法的效率较低,提供了话单排重方法,具体的话单排重方法步骤如下:
步骤S101、获取目标话单的至少一个关键字,并将所述至少一个关键字构成字符串。
本实施例的执行主体可以是分布式主机或服务器,如图2所示,分布式排重模块部署在多台Linux主机上,其业务流程与IOE架构排重一致。核心算法为将排重关键字经哈希运算后存储在分布式内存中,以便快速查询,将完整关键字存储在分布式存储系统中,当在分布式内存中校验为重单时再到分布式存储中校验完整关键字是否存在,都存在则判断为重单,否则为非重单。
分布式排重模块介绍:
规则管理:排重需要根据业务类型(如流量、移网语音、固网语音、短信、增值业务、宽带业务)选取合适的字段,以配置文件或者参数表的方式管理。
多通道并发:采用多通道方式,进程间处理不同用户的话单,访问各自的关键字历史。
分布式缓存:存储排重关键字的哈希运算结果,用于快速判断是否未出现过。
分布式存储系统:存储完整排重关键字,用于校验排重关键字是否真正出现过。
如图3所示,分布式主机或服务器接收到话单文件后,先对话单文件中包括的多个目标话单分别提取关键字,具体的,一个目标话单对应至少一个关键字,以一个目标话单为例,将该目标话单的至少一个关键字构成字符串,记为str,下面具体采用Bloom Filter算法对该字符串str进行计算。
依据排重的处理流程可知,制约排重性能的关键点在Bloom Filter算法的误判率、访问Redis和访问HBse三个地方。
Bloom Filter算法有以下四个参数:第一个参数是m,m表示BitSet数组包括的二进制数的位数;第二个参数是n,n表示话单总数;第三个参数是k,k表示哈希函数的个数;第四个参数是f,f表示Bloom Filter算法的误判率。
其中,n、m、f满足公式(1)所述的关系:
n=m ln(0.6185)/ln(f) (1)
k和f满足公式(2)所述的关系:
k=-ln(f)/ln(2) (2)
n、m、f、k满足公式(3)所述的关系:
f=(1-e-kn/m)k (3)
步骤S102、采用至少一个哈希函数,分别对所述字符串进行哈希运算,得到至少一个哈希值,其中,一个哈希函数对应一个哈希值。
可选的,Bloom Filter算法采用k个哈希函数,采用k个哈希函数分别对字符串str进行哈希运算,得到k个哈希值,具体的,一个哈希函数对应一个哈希值,将k个哈希函数中第i个哈希函数对字符串str进行哈希运算得到的哈希值记为h(i,str),其中,1≤i≤k。
步骤S103、获取预设的二进制数组中所述至少一个哈希值分别标识的位置上的二进制数。
在本实施例中,采用Redis作为分布式缓存,Redis中预设的二进制数组记为BitSet,BitSet包括m个二进制数,初始状态时,BitSet包括的m个二进制数均为0,h(i,str)的位数在0到m-1范围内,即h(i,str)的位数小于BitSet的位数。h(i,str)表示的是BitSet的第h(i,str)位,例如,h(i,str)的值为10,则h(i,str)指向BitSet的第10位,如此,h(i,str),1≤i≤k便指向BitSet的k个位置,即BitSet的第h(1,str)位、第h(2,str)位、……第h(k,str)位。如此,可从BitSet中获取出第h(1,str)位的二级制数、第h(2,str)位的二级制数、……第h(k,str)位的二级制数,即可获取出k个二级制数。
步骤S104、根据所述二进制数组中所述至少一个哈希值分别标识的位置上的二进制数,确定所述字符串是否被所述二进制数组记录过。
根据上述获取出的BitSet中的k个二级制数,可以确定字符串str是否被二进制数组BitSet记录过。
步骤S105、若所述字符串没有被所述二进制数组记录过,则确定所述目标话单不是重复话单。
具体的,如果上述步骤获取出的BitSet中的k个二级制数不全为比特1,有比特0出现,表示字符串str没有被二进制数组BitSet记录过,确定所述目标话单不是重复话单,则进行数据提交,数据提交的意思是:将该目标话单的至少一个关键字存储到HBase中,其中,HBase为分布式存储系统。进一步的,将BitSet中的k个二级制数中出现比特0的位置更新为比特1。
另外,若所述字符串被所述二进制数组记录过,则将所述目标话单的至少一个关键字与历史话单对应的至少一个关键字分别进行匹配;若匹配成功,则确定所述目标话单是重复话单。
如果上述步骤获取出的BitSet中的k个二级制数全为比特1,表示字符串str被二进制数组BitSet记录过,其中,HBase中存储有历史话单对应的至少一个关键字,其中,历史话单的个数可以是已经检查过的话单,具体可以是同一天内检查过的话单。此时,将目标话单的至少一个关键字与历史话单对应的至少一个关键字分别进行匹配,如果匹配成功,则该目标话单和历史话单相同,从而确定该目标话单是重复话单。如果不匹配成功,则该目标话单和历史话单不相同,从而确定该目标话单不是重复话单。
本实施例通过至少一个哈希函数分别对目标话单的关键字构成的字符串进行哈希运算,得到至少一个哈希值,根据哈希值标识的二进制数组中的二进制数,确定字符串是否被二进制数组记录过,如果字符串没有被二进制数组记录过,则确定目标话单不是重复话单,如果字符串被二进制数组记录过,则进一步将目标话单的至少一个关键字与历史话单对应的至少一个关键字分别进行匹配,如果匹配则确定所述目标话单是重复话单,即并不是每一次话单排重都要进行关键字的匹配,相比于现有技术,提高了话单排重方法的效率。
图4为本发明另一实施例提供的话单排重方法流程图。在上述实施例的基础上,本实施例提供的话单排重方法步骤如下:
步骤S401、获取目标话单的至少一个关键字,并将所述至少一个关键字构成字符串。
所述关键字包括如下至少一种:主叫号码、被叫号码、呼叫类型、开始时间、结束时间。
步骤S401与步骤S101一致,具体过程此处不再赘述。
步骤S402、采用至少一个哈希函数,分别对所述字符串进行哈希运算,得到至少一个哈希值,其中,一个哈希函数对应一个哈希值。
步骤S402与步骤S102一致,具体过程此处不再赘述。
步骤S403、获取预设的二进制数组中所述至少一个哈希值分别标识的位置上的二进制数。
步骤S403与步骤S103一致,具体过程此处不再赘述。
步骤S404、根据所述二进制数组中所述至少一个哈希值分别标识的位置上的二进制数,确定所述字符串是否被所述二进制数组记录过。
步骤S404与步骤S104一致,具体过程此处不再赘述。
步骤S405、若所述字符串没有被所述二进制数组记录过,则确定所述目标话单不是重复话单。
步骤S405与步骤S105一致,具体过程此处不再赘述。
步骤S406、若所述字符串被所述二进制数组记录过,则将所述目标话单的主叫号码、被叫号码、呼叫类型分别与历史话单对应的主叫号码、被叫号码、呼叫类型进行匹配。
在本实施例中,若所述字符串被所述二进制数组记录过,还可以检测目标话单是否为交叉话单或包容重单,其中,交叉话单表示:两个话单标识的是同一个通话,但是一个话单记录的通话时间和另一个话单记录的通话时间有交叉部分,例如,一个话单记录的通话时间是3点10分到3点20分,另一个话单记录的通话时间是3点15分到3点25分。包容重单表示:两个话单标识的是同一个通话,但是一个话单记录的通话时间包括另一个话单记录的通话时间,例如,一个话单记录的通话时间是3点10分到3点20分,另一个话单记录的通话时间是3点13分到3点19分。
为了验证该目标话单是否为交叉话单或包容重单,需要先验证该目标话单的主叫号码、被叫号码、呼叫类型是否分别与历史话单对应的主叫号码、被叫号码、呼叫类型匹配,如果匹配,表示该目标话单与历史话单记录的是同一个通话,如果不匹配,表示该目标话单与历史话单记录的不是同一个通话。
步骤S407、若匹配成功,则比较所述目标话单的开始时间和所述历史话单的开始时间,以及比较所述目标话单的结束时间和所述历史话单的结束时间,确定所述目标话单为交叉话单或包容重单。
如果目标话单的主叫号码、被叫号码、呼叫类型分别与历史话单对应的主叫号码、被叫号码、呼叫类型匹配,表示该目标话单与历史话单记录的是同一个通话,进一步比较所述目标话单的开始时间和所述历史话单的开始时间,以及比较所述目标话单的结束时间和所述历史话单的结束时间,从而确定所述目标话单为交叉话单或包容重单。
具体的,若所述目标话单的开始时间大于所述历史话单的开始时间,所述目标话单的结束时间小于所述历史话单的结束时间,则确定所述目标话单为包容重单;若所述目标话单的开始时间大于所述历史话单的开始时间、且小于所述历史话单的结束时间,所述目标话单的结束时间大于所述历史话单的结束时间,则确定所述目标话单为交叉话单。
例如,目标话单的开始时间为3点13分,历史话单的开始时间为3点10分,即目标话单的开始时间大于历史话单的开始时间,同时,目标话单的结束时间为3点19分,历史话单的的结束时间为3点20分,即所述目标话单的结束时间小于所述历史话单的结束时间,在这种情况下,即可确定所述目标话单为包容重单。
再例如,目标话单的开始时间为3点15分,历史话单的开始时间为3点10分,历史话单的的结束时间为3点20分,即目标话单的开始时间大于历史话单的开始时间,且目标话单的开始时间小于历史话单的的结束时间,同时,目标话单的结束时间为3点25分,即目标话单的结束时间大于历史话单的的结束时间,则确定所述目标话单为交叉话单。
另外,由于业务间不存在重单,为方便内存清理,可按照业务类型和话单日期组合为Redis的Key值,方便按天、按业务回收Redis内存。若为提高并发效率,可将进程编号,形成进程、业务类型和日期的组合key值。
此外,HBase中使用12个列簇存储排重关键字、话单开始时间、结束时间,12个列簇对应12个月,方便根据话单月份直接定位列簇。可采用列簇循环清理的方式,减少了维护工作量。
本发明实施例不仅可以检测出重复话单,还可以检测出交叉话单或包容重单,提高了话单检测的灵活性。
图5为本发明实施例提供的话单排重装置的结构图。本发明实施例提供的话单排重装置可以执行话单排重方法实施例提供的处理流程,如图5所示,话单排重装置50包括:获取模块51、计算模块52、确定模块53,其中,获取模块51用于获取目标话单的至少一个关键字,并将所述至少一个关键字构成字符串;计算模块52用于采用至少一个哈希函数,分别对所述字符串进行哈希运算,得到至少一个哈希值,其中,一个哈希函数对应一个哈希值;获取模块51还用于获取预设的二进制数组中所述至少一个哈希值分别标识的位置上的二进制数;确定模块53用于根据所述二进制数组中所述至少一个哈希值分别标识的位置上的二进制数,确定所述字符串是否被所述二进制数组记录过;若所述字符串没有被所述二进制数组记录过,则确定所述目标话单不是重复话单。
本发明实施例提供的话单排重装置可以具体用于执行上述图1所提供的方法实施例,具体功能此处不再赘述。
本发明实施例通过至少一个哈希函数分别对目标话单的关键字构成的字符串进行哈希运算,得到至少一个哈希值,根据哈希值标识的二进制数组中的二进制数,确定字符串是否被二进制数组记录过,如果字符串没有被二进制数组记录过,则确定目标话单不是重复话单,如果字符串被二进制数组记录过,则进一步将目标话单的至少一个关键字与历史话单对应的至少一个关键字分别进行匹配,如果匹配则确定所述目标话单是重复话单,即并不是每一次话单排重都要进行关键字的匹配,相比于现有技术,提高了话单排重方法的效率。
图6为本发明另一实施例提供的话单排重装置的结构图。在上述实施例的基础上,话单排重装置50还包括:匹配模块54,匹配模块54用于若所述字符串被所述二进制数组记录过,则将所述目标话单的至少一个关键字与历史话单对应的至少一个关键字分别进行匹配;确定模块53还用于:若所述匹配模块匹配成功,则确定所述目标话单是重复话单。
所述关键字包括如下至少一种:主叫号码、被叫号码、呼叫类型、开始时间、结束时间。
匹配模块54具体用于:若所述字符串被所述二进制数组记录过,则将所述目标话单的主叫号码、被叫号码、呼叫类型分别与历史话单对应的主叫号码、被叫号码、呼叫类型进行匹配;话单排重装置50还包括:比较模块55,若匹配成功,则比较模块55用于比较所述目标话单的开始时间和所述历史话单的开始时间,以及比较所述目标话单的结束时间和所述历史话单的结束时间;确定模块53还用于:确定所述目标话单为交叉话单或包容重单。
若所述目标话单的开始时间大于所述历史话单的开始时间,所述目标话单的结束时间小于所述历史话单的结束时间,则确定模块53确定所述目标话单为包容重单;若所述目标话单的开始时间大于所述历史话单的开始时间、且小于所述历史话单的结束时间,所述目标话单的结束时间大于所述历史话单的结束时间,则确定模块53确定所述目标话单为交叉话单。
本发明实施例提供的话单排重装置可以具体用于执行上述图4所提供的方法实施例,具体功能此处不再赘述。
本发明实施例不仅可以检测出重复话单,还可以检测出交叉话单或包容重单,提高了话单检测的灵活性。
综上所述,本发明实施例通过至少一个哈希函数分别对目标话单的关键字构成的字符串进行哈希运算,得到至少一个哈希值,根据哈希值标识的二进制数组中的二进制数,确定字符串是否被二进制数组记录过,如果字符串没有被二进制数组记录过,则确定目标话单不是重复话单,如果字符串被二进制数组记录过,则进一步将目标话单的至少一个关键字与历史话单对应的至少一个关键字分别进行匹配,如果匹配则确定所述目标话单是重复话单,即并不是每一次话单排重都要进行关键字的匹配,相比于现有技术,提高了话单排重方法的效率;不仅可以检测出重复话单,还可以检测出交叉话单或包容重单,提高了话单检测的灵活性。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种话单排重方法,其特征在于,包括:
获取目标话单的至少一个关键字,并将所述至少一个关键字构成字符串;
采用至少一个哈希函数,分别对所述字符串进行哈希运算,得到至少一个哈希值,其中,一个哈希函数对应一个哈希值;
获取预设的二进制数组中所述至少一个哈希值分别标识的位置上的二进制数;
根据所述二进制数组中所述至少一个哈希值分别标识的位置上的二进制数,确定所述字符串是否被所述二进制数组记录过;
若所述字符串没有被所述二进制数组记录过,则确定所述目标话单不是重复话单;
所述获取预设的二进制数组中所述至少一个哈希值分别标识的位置上的二进制数,包括:Redis中预设的二进制数组记为BitSet,BitSet包括m个二进制数,初始状态时,BitSet包括的m个二进制数均为0,h(i,str)的位数在0到m-1范围内;h(i,str)表示的是BitSet的第h(i,str)位,h(i,str),1≤i≤k指向BitSet的k个位置;可从BitSet中获取出k个二级制数。
2.根据权利要求1所述的方法,其特征在于,还包括:
若所述字符串被所述二进制数组记录过,则将所述目标话单的至少一个关键字与历史话单对应的至少一个关键字分别进行匹配;
若匹配成功,则确定所述目标话单是重复话单。
3.根据权利要求2所述的方法,其特征在于,所述关键字包括如下至少一种:
主叫号码、被叫号码、呼叫类型、开始时间、结束时间。
4.根据权利要求3所述的方法,其特征在于,若所述字符串被所述二进制数组记录过,则将所述目标话单的主叫号码、被叫号码、呼叫类型分别与历史话单对应的主叫号码、被叫号码、呼叫类型进行匹配;
若匹配成功,则比较所述目标话单的开始时间和所述历史话单的开始时间,以及比较所述目标话单的结束时间和所述历史话单的结束时间,确定所述目标话单为交叉话单或包容重单。
5.根据权利要求4所述的方法,其特征在于,所述比较所述目标话单的开始时间和所述历史话单的开始时间,以及比较所述目标话单的结束时间和所述历史话单的结束时间,确定所述目标话单为交叉话单或包容重单,包括:
若所述目标话单的开始时间大于所述历史话单的开始时间,所述目标话单的结束时间小于所述历史话单的结束时间,则确定所述目标话单为包容重单;
若所述目标话单的开始时间大于所述历史话单的开始时间、且小于所述历史话单的结束时间,所述目标话单的结束时间大于所述历史话单的结束时间,则确定所述目标话单为交叉话单。
6.一种话单排重装置,其特征在于,包括:
获取模块,用于获取目标话单的至少一个关键字,并将所述至少一个关键字构成字符串;
计算模块,用于采用至少一个哈希函数,分别对所述字符串进行哈希运算,得到至少一个哈希值,其中,一个哈希函数对应一个哈希值;
所述获取模块还用于获取预设的二进制数组中所述至少一个哈希值分别标识的位置上的二进制数;
所述获取预设的二进制数组中所述至少一个哈希值分别标识的位置上的二进制数,包括:Redis中预设的二进制数组记为BitSet,BitSet包括m个二进制数,初始状态时,BitSet包括的m个二进制数均为0,h(i,str)的位数在0到m-1范围内;h(i,str)表示的是BitSet的第h(i,str)位,h(i,str),1≤i≤k指向BitSet的k个位置;可从BitSet中获取出k个二级制数;
确定模块,用于根据所述二进制数组中所述至少一个哈希值分别标识的位置上的二进制数,确定所述字符串是否被所述二进制数组记录过;若所述字符串没有被所述二进制数组记录过,则确定所述目标话单不是重复话单。
7.根据权利要求6所述的话单排重装置,其特征在于,还包括:
匹配模块,用于若所述字符串被所述二进制数组记录过,则将所述目标话单的至少一个关键字与历史话单对应的至少一个关键字分别进行匹配;
所述确定模块还用于:若所述匹配模块匹配成功,则确定所述目标话单是重复话单。
8.根据权利要求7所述的话单排重装置,其特征在于,所述关键字包括如下至少一种:
主叫号码、被叫号码、呼叫类型、开始时间、结束时间。
9.根据权利要求8所述的话单排重装置,其特征在于,所述匹配模块具体用于:若所述字符串被所述二进制数组记录过,则将所述目标话单的主叫号码、被叫号码、呼叫类型分别与历史话单对应的主叫号码、被叫号码、呼叫类型进行匹配;
所述话单排重装置还包括:比较模块;
若匹配成功,则所述比较模块用于比较所述目标话单的开始时间和所述历史话单的开始时间,以及比较所述目标话单的结束时间和所述历史话单的结束时间;
所述确定模块还用于:确定所述目标话单为交叉话单或包容重单。
10.根据权利要求9所述的话单排重装置,其特征在于,若所述目标话单的开始时间大于所述历史话单的开始时间,所述目标话单的结束时间小于所述历史话单的结束时间,则所述确定模块确定所述目标话单为包容重单;
若所述目标话单的开始时间大于所述历史话单的开始时间、且小于所述历史话单的结束时间,所述目标话单的结束时间大于所述历史话单的结束时间,则所述确定模块确定所述目标话单为交叉话单。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710525767.XA CN107357862B (zh) | 2017-06-30 | 2017-06-30 | 话单排重方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710525767.XA CN107357862B (zh) | 2017-06-30 | 2017-06-30 | 话单排重方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107357862A CN107357862A (zh) | 2017-11-17 |
CN107357862B true CN107357862B (zh) | 2020-03-13 |
Family
ID=60274158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710525767.XA Active CN107357862B (zh) | 2017-06-30 | 2017-06-30 | 话单排重方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107357862B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110020058A (zh) * | 2017-12-30 | 2019-07-16 | 中国移动通信集团贵州有限公司 | 信息处理方法、装置、设备及介质 |
CN109976896B (zh) * | 2019-04-09 | 2021-06-29 | 中国联合网络通信集团有限公司 | 业务排重处理方法和装置 |
CN112579623B (zh) * | 2019-09-29 | 2024-08-02 | 北京国双科技有限公司 | 存储数据的方法、装置、存储介质及设备 |
CN111209272B (zh) * | 2019-12-26 | 2023-04-18 | 杭州亚信云信息科技有限公司 | 一种话单查重方法、装置及系统 |
CN111258966A (zh) * | 2020-01-14 | 2020-06-09 | 软通动力信息技术有限公司 | 一种数据去重方法、装置、设备及存储介质 |
CN112068958A (zh) * | 2020-08-31 | 2020-12-11 | 常州微亿智造科技有限公司 | 布隆过滤器和数据处理方法 |
CN114915927B (zh) * | 2021-02-09 | 2023-10-31 | 中国联合网络通信集团有限公司 | 数据处理方法、装置及设备 |
CN112950211B (zh) * | 2021-05-14 | 2021-07-30 | 腾讯科技(深圳)有限公司 | 一种交易验重方法、装置、设备以及介质 |
CN114786141B (zh) * | 2022-04-29 | 2023-11-21 | 恒玄科技(上海)股份有限公司 | 一种蓝牙无线网格网络中的消息过滤方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000017803A1 (en) * | 1998-09-22 | 2000-03-30 | Iridium Ip, Llc | Method and system for providing a global satellite based telecommunication network |
CN101442731A (zh) * | 2008-12-12 | 2009-05-27 | 中国移动通信集团安徽有限公司 | 一种话单剔重方法和装置 |
CN101493835A (zh) * | 2009-01-09 | 2009-07-29 | 南京联创科技股份有限公司 | 基于hash算法内存和文件系统混合排重方法 |
CN100571317C (zh) * | 2007-10-25 | 2009-12-16 | 中兴通讯股份有限公司 | 一种话单排重方法及装置 |
CN102693315A (zh) * | 2012-05-29 | 2012-09-26 | 上海家配电子商务有限公司 | 一种基于共享内存映射的url去重方法及装置 |
CN103037344A (zh) * | 2012-12-06 | 2013-04-10 | 亚信联创科技(中国)有限公司 | 一种话单去重方法及装置 |
-
2017
- 2017-06-30 CN CN201710525767.XA patent/CN107357862B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000017803A1 (en) * | 1998-09-22 | 2000-03-30 | Iridium Ip, Llc | Method and system for providing a global satellite based telecommunication network |
CN100571317C (zh) * | 2007-10-25 | 2009-12-16 | 中兴通讯股份有限公司 | 一种话单排重方法及装置 |
CN101442731A (zh) * | 2008-12-12 | 2009-05-27 | 中国移动通信集团安徽有限公司 | 一种话单剔重方法和装置 |
CN101493835A (zh) * | 2009-01-09 | 2009-07-29 | 南京联创科技股份有限公司 | 基于hash算法内存和文件系统混合排重方法 |
CN102693315A (zh) * | 2012-05-29 | 2012-09-26 | 上海家配电子商务有限公司 | 一种基于共享内存映射的url去重方法及装置 |
CN103037344A (zh) * | 2012-12-06 | 2013-04-10 | 亚信联创科技(中国)有限公司 | 一种话单去重方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107357862A (zh) | 2017-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107357862B (zh) | 话单排重方法及装置 | |
CN104462141B (zh) | 一种数据存储与查询的方法、系统及存储引擎装置 | |
CN106407207B (zh) | 一种实时新增数据更新方法和装置 | |
CN106874348B (zh) | 文件存储和索引方法、装置及读取文件的方法 | |
EP2899649A1 (en) | Data indexing method and device | |
CN107748739B (zh) | 一种短信文本模版的提取方法及相关装置 | |
US8225060B2 (en) | Data de-duplication by predicting the locations of sub-blocks within the repository | |
CN111475105A (zh) | 监控数据存储方法、设备、服务器及存储介质 | |
CN109801693B (zh) | 病案分组方法及装置、终端和计算机可读存储介质 | |
CN108280226B (zh) | 数据处理方法及相关设备 | |
WO2018006721A1 (zh) | 日志文件的存储方法及装置 | |
CN112307297B (zh) | 一种基于优先级规则的用户标识统一方法及系统 | |
CN106649368A (zh) | 数据存储方法、装置和数据查询方法、装置 | |
CN104077082A (zh) | 网络投票数据存储方法和装置 | |
CN110704433B (zh) | 列式存储数据的brin索引构建方法、数据检索方法及装置 | |
CN103746851A (zh) | 一种实现独立用户数统计的方法及装置 | |
CN113763034B (zh) | 广告数据的处理方法及装置 | |
CN117493319A (zh) | 数据去重方法、装置、电子设备及存储介质 | |
CN115809248B (zh) | 数据查询方法和装置以及存储介质 | |
CN109471917B (zh) | 数据处理方法、装置、设备及介质 | |
CN110851758A (zh) | 一种网页访客数量统计方法及装置 | |
CN110728585A (zh) | 核保方法、装置、设备及存储介质 | |
CN116450607A (zh) | 数据处理方法、设备及存储介质 | |
CN106599326B (zh) | 一种云化架构下的记录数据剔重处理方法及系统 | |
CN114036104A (zh) | 基于分布式存储的重删数据的云归档方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |