掌桥专利:专业的专利平台
掌桥专利
首页

一种基于set数组的终端信息匹配方法及系统

文献发布时间:2023-06-19 18:53:06


一种基于set数组的终端信息匹配方法及系统

技术领域

本发明涉及互联网金融数据技术领域,具体而言,涉及一种基于set数组的终端信息匹配方法及系统。

背景技术

如今,通过扫码等方式进行电子支付的技术被广泛使用,为人们生活带来极大的便利。而在电子支付的过程中往往需要将支付请求所涉及的终端设备的终端信息转化为后台、服务器等能识别到的数据,随着业务量的扩展,电子支付的订单越来越多,后台服务器存储的终端信息也会越来越多,根据终端信息查询相关数据的数据也越来越慢。

而在当前的支付系统设计中,通常将终端信息存放在后台服务器的mysql等数据库中,每次终端的支付请求都会去查询后台服务器的数据库,且是使用like等模糊查询的方式,查询的结果再通过业务代码进行逻辑匹配。但这种方式的业务层代码编写比较复杂,增大了二次开发和维护的难度;同时随着终端电子支付数据量的增多,大量的终端数据存放在数据库中去查询,导致数据库查询效率低下,甚至会引发数据库资源告警,最终降低客户的支付体验感。

发明内容

本发明的目的在于提供一种基于set数组的终端信息匹配方法及系统,其通过从数据库中获取终端信息到内存中,并基于终端信息的整体和拆分后的字符分别构建多级set数组,在进行匹配的时候通过构建的多级set数组对待匹配的信息分别进行字符级和字符串级的比较和匹配,创造性地将多级set数组的去重、比较算法使用到终端信息的快速匹配和查询中,代替了现有的电子支付系统中需要大量查询存储终端信息的数据库而导致的信息查询效率低下的传统方式,有效地提升终端信息查询的速率,从而提高用户的体验感。

本发明的实施例是这样实现的:

第一方面,本申请实施例提供一种基于set数组的终端信息匹配方法,包括以下步骤:

从数据库获取终端信息;

基于所述终端信息构建多级set数组;

接收待匹配的信息,基于所述待匹配的信息在所述多级set数组中进行查询,并返回查询结果。

在本发明的一些实施例中,所述从数据库获取终端信息的步骤具体包括:

通过懒加载从数据库的终端信息表中读取所有的终端信息。

在本发明的一些实施例中,所述基于所述终端信息构建多级set数组的步骤具体包括:

每次获取一条终端信息作为目标词,并加入预设的目标词set数组;

对所述目标词进行拆分,对应得到多个目标字符;

将所述目标字符加入预设的目标字符set数组。

在本发明的一些实施例中,所述接收待匹配的信息,基于所述待匹配的信息在所述多级set数组中进行查询的步骤具体包括:

将所述待匹配的信息与所述目标字符set数组逐字符进行比较;

若所述待匹配的信息的字符不都在所述目标字符set数组中,则获取下一条终端信息并更新所述目标词;

若所述待匹配的信息的每个字符都在所述目标字符set数组中,则将所述待匹配的信息与所述目标词set数组进行比较。

在本发明的一些实施例中,所述将所述待匹配的信息与所述目标词set数组进行比较的步骤具体包括:

将所述待匹配的信息整体与所述目标词set数组中的目标词进行比较,若所述待匹配的信息的整个字符组存在于所述目标词中,则返回所述目标词对应的终端信息;

否则,获取下一条终端信息并更新所述目标词。

在本发明的一些实施例中,在所述获取下一条终端信息并更新所述目标词的步骤之后,所述方法还包括:

依次重复如权利要求3到5中所述的基于set数组的终端信息匹配方法的步骤,直到匹配到对应的终端信息或获取到最后一条终端信息为止。

第二方面,本申请实施例提供一种基于set数组的终端信息匹配系统,其包括:

获取模块,用于从数据库获取终端信息;

构建模块,用于基于所述终端信息构建多级set数组;

查询模块,用于接收待匹配的信息,基于所述待匹配的信息在所述多级set数组中进行查询,并返回查询结果。

在本发明的一些实施例中,所述获取模块具体包括:

读取子模块,用于通过懒加载从数据库的终端信息表中读取所有的终端信息。

第三方面,本申请实施例提供一种电子设备,其包括存储器,用于存储一个或多个程序;处理器,当上述一个或多个程序被上述处理器执行时,实现如上述第一方面中任一项上述的方法。

第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面中任一项上述的方法。

相对于现有技术,本发明的实施例至少具有如下优点或有益效果:

本发明的实施例提出了一种基于set数组的终端信息匹配方法,其通过从数据库中获取终端信息到内存中,并基于终端信息的整体和拆分后的字符分别构建多级set数组,在进行匹配的时候通过构建的多级set数组对待匹配的信息分别进行字符级和字符串级的比较和匹配,创造性地将多级set数组的去重、比较算法使用到终端信息的快速匹配和查询中,代替了现有的电子支付系统中需要大量查询存储终端信息的数据库而导致的信息查询效率低下的传统方式,有效地提升终端信息查询的速率,从而提高用户的体验感。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明一种基于set数组的终端信息匹配方法一实施例的流程图;

图2为本发明实施例中基于所述终端信息构建多级set数组的步骤的具体流程图;

图3为本发明实施例中接收待匹配的信息,基于所述待匹配的信息在所述多级set数组中进行查询的步骤的具体流程图;

图4为本发明实施例中将所述待匹配的信息与所述目标词set数组进行比较的步骤的具体流程图;

图5为本发明一种基于set数组的终端信息匹配系统一实施例的结构框图;

图6为本发明实施例提供的一种电子设备的结构框图。

图标:1、获取模块;2、构建模块;3、查询模块;4、处理器;5、存储器;6、数据总线。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。

实施例1

请参阅图1-4,本申请实施例提供了一种基于set数组的终端信息匹配方法,其通过从数据库中获取终端信息到内存中,并基于终端信息的整体和拆分后的字符分别构建多级set数组,在进行匹配的时候通过构建的多级set数组对待匹配的信息分别进行字符级和字符串级的比较和匹配,创造性地将多级set数组的去重、比较算法使用到终端信息的快速匹配和查询中,代替了现有的电子支付系统中需要大量查询存储终端信息的数据库而导致的信息查询效率低下的传统方式,有效地提升终端信息查询的速率,从而提高用户的体验感。

如图1所示,上述基于set数组的终端信息匹配方法包括以下步骤:

步骤S101:从数据库获取终端信息。

上述步骤中,具体可以在后台或服务器系统启动程序的时候,通过懒加载的方式从数据库中查询终端信息表,根据加载需求分批读取终端信息表中的所有终端信息到内存中,可以提高数据的读取速度,终端信息包括终端设备的名称、编号、硬件地址(如mac地址)等可以用来标识设备的信息,这些信息可以以某种方式连接成一个字符串,如abcde-12345-11:22:33:fg:yy:uj等,也可以是其他形式。

步骤S102:基于所述终端信息构建多级set数组。

其中,如图2所示,上述步骤S102:基于所述终端信息构建多级set数组的步骤具体包括:

步骤S1021:每次获取一条终端信息作为目标词,并加入预设的目标词set数组;

步骤S1022:对所述目标词进行拆分,对应得到多个目标字符;以及

步骤S1023:将所述目标字符加入预设的目标字符set数组。

上述步骤中,可以先通过程序(如JAVA程序中)初始化两个空set数组,然后从内存中读取一条终端信息作为后续匹配对比的目标词,并将该终端信息整体加入一个空set数组,得到目标词set数组,如[“abcde-12345-11:22:33:fg:yy:uj”];进一步的,对目标词的终端信息进行拆分,将目标词字符串按单个字符拆分出来,对应得到多个目标字符,如,并拆分得到的所有单个目标字符加入另一个空set数组,得到目标字符set数组,如[‘a’,‘b’,‘c’...‘j’]。通过set数组自带的去重功能,目标词set数组和目标字符set数组无须进行去重处理,使业务程序的实现更为简洁,降低程序开发为维护的难度。

步骤S103:接收待匹配的信息,基于所述待匹配的信息在所述多级set数组中进行查询,并返回查询结果。

相应地,请参阅图3,上述步骤S103:接收待匹配的信息,基于所述待匹配的信息在所述多级set数组中进行查询的步骤具体包括:

步骤S1031:将所述待匹配的信息与所述目标字符set数组逐字符进行比较;

步骤S1032:若所述待匹配的信息的字符不都在所述目标字符set数组中,则获取下一条终端信息并更新所述目标词;

步骤S1033:若所述待匹配的信息的每个字符都在所述目标字符set数组中,则将所述待匹配的信息与所述目标词set数组进行比较。

上述步骤中,在接收到来自用户的终端设备的查询终端信息的请求时,可以获取其中待匹配的信息,如获取用户的终端设备的名称、编号、硬件地址(如mac地址)等信息中的一个或多个,如“abcde”或“abcde-12345”等等,以其为待匹配的信息,并首先与上述目标字符set数组中的字符进行逐字符比较,如依次取出“abcde”中的每个字符与目标字符set数组[‘a’,‘b’,‘c’...‘j’]的单个字符进行对比;若待匹配的信息的字符不都在目标字符set数组中,如待匹配的信息“abtde”中的字符‘t’不在目标字符set数组[‘a’,‘b’,‘c’...‘j’],说明待匹配的信息与此条目标词的终端信息不匹配,则获取下一条终端信息来更新目标词,将目标词set数组清空并将新获取的终端信息加入上述目标词set数组;若待匹配的信息的每个字符都在目标字符set数组中,如“ajbcjde”的每个字符都存在于目标字符set数组[‘a’,‘b’,‘c’...‘j’]中,则将待匹配的信息与目标词set数组进行比较。

其中,如图4所示,上述步骤S1033中的将所述待匹配的信息与所述目标词set数组进行比较的步骤具体包括:

步骤S10331:将所述待匹配的信息整体与所述目标词set数组中的目标词进行比较,若所述待匹配的信息的整个字符组存在于所述目标词中,则返回所述目标词对应的终端信息;

步骤S10332:否则,获取下一条终端信息并更新所述目标词。

上述步骤中,虽然待匹配的信息与目标字符set数组的每个字符的比较都通过,但还不能确定待匹配的信息就是数据库中的终端设备的终端信息,例如,虽然待匹配的信息“ajbcjde”的每个字符都存在于目标字符set数组[‘a’,‘b’,‘c’...‘j’]中,但其并不是终端设备名称为“abcde”的终端信息[“abcde-12345-11:22:33:fg:yy:uj”];因此,还需将待匹配的信息整体与目标词set数组中的整个目标词进行比较,才能最终确定待匹配的信息与获取的终端信息是否匹配,具体可以将待匹配的信息作为一个字符串与目标词set数组中的目标词进行比较,如按字符串的长度依次从目标词中截取对应长度的信息并利用set数组的比较算法,快速地一一比较两者是否完全一样,若存在完全一样的情况,如两者都为“12345”,说明待匹配的信息的整个字符组(字符串)存在于目标词中,则返回目标词对应的终端信息,即将整个终端设备的信息或其他用户需要的数据返回。否则,从内存中获取下一条终端信息来更新目标词,将目标词set数组清空并将新获取的终端信息加入上述目标词set数组。

然后在获取下一条终端信息并更新目标词之后,依次重复上述步骤S102到步骤S103中的子步骤,即,将从内存中获取到的新的终端信息作为目标词整体写入目标词set数组中、并拆分为多个单个目标字符写入目标字符set数组、通过目标字符set数组和目标词set数组的两级比较进行匹配的过程,直到匹配到对应的终端信息并返回,或者获取到最后一条终端信息为止,结束整个匹配过程,从而创造性地将多级set数组的去重、比较算法使用到终端信息的快速匹配和查询中,代替了现有的电子支付系统中需要大量查询存储终端信息的数据库而导致的信息查询效率低下的传统方式,避免了重复查询大量的数据库数据,有效地提升终端信息查询的速率,从而提高用户的体验感。

需要说明的是,本发明实施例中未具体展开说明的技术内容,可以通过现有的相关技术实现,属于现有技术,在本发明实施例中不再赘述。

实施例2

相应地,请参阅图5,本申请实施例提供了一种基于set数组的终端信息匹配系统,其包括:

获取模块1,用于从数据库获取终端信息;构建模块2,用于基于所述终端信息构建多级set数组;查询模块3,用于接收待匹配的信息,基于所述待匹配的信息在所述多级set数组中进行查询,并返回查询结果。

其中,所述获取模块1具体包括:读取子模块,用于通过懒加载从数据库的终端信息表中读取所有的终端信息。

上述系统具体实现过程请参照实施例1中提供的一种基于set数组的终端信息匹配方法,在此不再赘述。

实施例3

请参阅图6,本申请实施例提供了一种电子设备,该电子设备包括至少一个处理器4、至少一个存储器5和数据总线6;其中:处理器4与存储器5通过数据总线6完成相互间的通信;存储器5存储有可被处理器4执行的程序指令,处理器4调用程序指令以执行一种基于set数组的终端信息匹配方法。例如实现:

从数据库获取终端信息;基于所述终端信息构建多级set数组;接收待匹配的信息,基于所述待匹配的信息在所述多级set数组中进行查询,并返回查询结果。

其中,存储器5可以是但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。

处理器4可以是一种集成电路芯片,具有信号处理能力。该处理器4可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

可以理解,图6所示的结构仅为示意,电子设备还可包括比图6中所示更多或者更少的组件,或者具有与图6所示不同的配置。图6中所示的各组件可以采用硬件、软件或其组合实现。

实施例4

本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器4执行时实现一种基于set数组的终端信息匹配方法。

例如实现:

从数据库获取终端信息;基于所述终端信息构建多级set数组;接收待匹配的信息,基于所述待匹配的信息在所述多级set数组中进行查询,并返回查询结果。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其它的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

相关技术
  • 一种获取移动终端与车载蓝牙匹配信息的方法
  • 一种基于移动终端的电力信息通信检修方法及系统
  • 一种基于文本内容的用户匹配方法及其终端、服务器
  • 一种基于关键词的文本信息精准匹配方法、系统、存储介质、终端
  • 一种基于移动终端隐私保护信息匹配的方法及系统
技术分类

06120115726342