一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据匹配方法及装置与流程

2021-11-09 22:59:00 来源:中国专利 TAG:


1.本发明属于数据处理技术领域,尤其涉及一种数据匹配方法及装置。


背景技术:

2.在很多数据匹配的应用场景中,待匹配数据通常需要与数据库中百万级的大数据进行全量匹配,数据量大导致整个匹配过程耗时过长,匹配一次耗时几分钟,进而导致返回匹配结果的时间过长。


技术实现要素:

3.有鉴于此,本发明的目的在于提供一种数据匹配方法及装置,以解决相关技术的数据匹配方案匹配过程耗时长的问题,其提供的技术方案如下:
4.第一方面,本技术提供了一种数据匹配方法,包括:
5.接收待匹配数据;
6.根据所述待匹配数据的字符串长度确定需要匹配的字符串长度区间;
7.基于字符串长度与存储空间分片之间的映射关系,确定所述字符串长度区间对应的目标存储空间分片;
8.查询所述目标存储空间分片中是否存在与所述待查询数据相匹配的数据,得到匹配结果,其中,不同字符串长度的所述准确数据分别存储在不同的存储空间分片内。
9.在第一方面一种可能的实现方式中,所述根据所述待匹配数据的字符串长度确定需要匹配的字符串长度区间,包括:
10.获取输入的匹配精确度;
11.根据所述匹配精确度和所述待匹配数据的字符串长度,计算得到满足所述匹配精确度的字符串长度区间。
12.在第一方面另一种可能的实现方式中,所述根据所述匹配精确度和所述待匹配数据的字符串长度,计算得到满足所述匹配精确度的字符串长度区间,包括:
13.计算所述待匹配数据的字符串长度与所述匹配精确度的乘积,得到第一字符串长度阈值;
14.计算所述待匹配数据的字符串长度与所述匹配精确度的商,得到第二字符串长度阈值;
15.以所述第一字符串长度阈值为下限值,以及以所述第二字符串长度阈值为上限值,得到所述字符串长度区间。
16.在第一方面又一种可能的实现方式中,所述基于字符串长度与存储空间分片之间的映射关系,确定所述字符串长度区间对应的目标存储空间分片,包括:
17.确定所述字符串长度区间包含的各个目标字符串长度;
18.基于字符串长度与存储空间分片之间的映射关系,匹配每个所述目标字符串长度对应的目标存储空间分片。
19.在第一方面另一种可能的实现方式中,在所述接收待匹配数据之前,所述方法还包括:
20.确定各个所述准确数据的字符串长度;
21.基于所述字符串长度,分别将各个所述准确数据存储至与所述字符串长度相匹配的存储空间分片中。
22.在第一方面又一种可能的实现方式中,所述根据所述字符串长度对各个所述准确数据进行分片存储,包括:
23.将所述字符串长度相同的准确数据存储至同一存储空间分片。
24.在第一方面另一种可能的实现方式中,所述根据所述字符串长度对各个所述准确数据进行分片存储,包括:
25.对于任一存储空间分片,将字符串长度与所述存储空间分片相匹配的准确数据的字符串长度作为key,将所述准确数据存储在value中。
26.第二方面,本技术还提供了一种数据匹配装置,包括:
27.接收模块,用于接收待匹配数据;
28.字符串长度区间确定模块,用于根据所述待匹配数据的字符串长度确定需要匹配的字符串长度区间;
29.分片区间定位模块,用于基于字符串长度与存储空间分片之间的映射关系,确定所述字符串长度区间对应的目标存储空间分片;
30.数据匹配模块,用于查询所述目标存储空间分片中是否存在与所述待匹配数据相匹配的数据,得到匹配结果,其中,不同字符串长度的所述准确数据存储在不同的存储空间分片内。
31.在第二方面一种可能的实现方式中,所述字符串长度区间确定模块包括:
32.匹配精确度获取子模块,用于获取输入的匹配精确度;
33.长度区间确定子模块,用于根据所述匹配精确度和所述待匹配数据的字符串长度,计算得到满足所述匹配精确度的字符串长度区间。
34.在第二方面另一种可能的实现方式中,所述长度区间确定子模块包括:
35.区间下限值计算子模块,用于计算所述待匹配数据的字符串长度与所述匹配精确度的乘积,得到第一字符串长度阈值。
36.区间上限值计算子模块,用于计算所述待匹配数据的字符串长度与所述匹配精确度的商,得到第二字符串长度阈值。
37.区间确定子模块,用于以所述第一字符串长度阈值为下限值,以及以所述第二字符串长度阈值为上限值,得到所述字符串长度区间。
38.在第二方面又一种可能的实现方式中,分片区间定位模块,包括:
39.长度确定子模块,用于确定各个所述准确数据的字符串长度;
40.分片区间确定子模块,用于基于所述字符串长度,分别将各个所述准确数据存储至与所述字符串长度相匹配的存储空间分片中。
41.在第二方面再一种可能的实现方式中,分片区间确定子模块,用于:
42.将所述字符串长度相同的准确数据存储至同一存储空间分片。
43.在第二方面又一种可能的实现方式中,分片区间确定子模块,用于:
44.对于任一存储空间分片,将字符串长度与所述存储空间分片相匹配的准确数据的字符串长度作为key,将所述准确数据存储在value中。
45.第三方面,本技术还提供了一种电子设备,包括:存储器和处理器;
46.所述存储器内存储有可在所述处理器上运行的计算机程序;
47.所述处理器执行所述计算机程序使得所述电子设备执行第一方面任一种可能的实现方式所述的数据匹配方法。
48.第四方面,本技术还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如第一方面任一种可能的实现方式所述的数据匹配方法。
49.第五方面,本技术还提供了一种计算机程序产品,当改计算机程序产品在电子设备上执行时,适于执行初始化有第一方面任一种可能的实现方式所述的数据匹配方法。
50.本实施例提供的数据匹配方法,数据库中的数据按照数据的字符串长度不同分别存储在不同的分片存储区间中;接收到待匹配数据后,先根据该待匹配数据的字符串长度确定出需要匹配的字符串长度区间。进一步,根据字符串长度与存储空间分片之间的映射关系,确定该字符串长度区间对应的目标存储空间分片。查询该目标存储空间分片中是否需存在与待匹配数据相匹配的数据得到匹配结果。由上述过程可知,该方案将数据按字符串长度分片存储,匹配数据的过程中,先根据待匹配数据的字符串长度确定目标存储空间分片,极大地缩小了匹配范围,缩短了匹配过程的耗时,因此提高了数据匹配效率。
附图说明
51.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
52.图1是本技术实施例提供的一种数据匹配方法的流程图;
53.图2是本技术实施例提供的一种确定字符串长度区间过程的流程图;
54.图3是本技术提供的数据库中的数据分片存储过程的流程图;
55.图4是本技术实施例提供的一种数据存储格式的示意图;
56.图5是本技术实施例提供的一种数据匹配装置的框图;
57.图6是本技术实施例又一种数据匹配装置的框图。
具体实施方式
58.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
59.请参见图1,示出了本技术实施例提供的一种数据匹配方法的流程图,该方法应用于电子设备中,该方法将数据库中的数据按照匹配字段数据包含的字符串长度不同,分别存储在不同的存储空间分片内。
60.如图1所示,所述方法可以包括以下步骤:
61.s110,接收待匹配数据。
62.待匹配数据是用户输入的需要匹配的数据,例如,用户可以在数据匹配系统的用户交互界面上输入要匹配的数据。不同应用场景中的待匹配数据不同。
63.例如,在某些应用场景下需要对客户名称进行核对,如个人姓名和机构名称。用户可以在匹配系统的匹配框中输入要匹配的客户名称。其中,用户输入的客户名称可以是客户的全称或简称。
64.以待匹配数据为字符串为例进行说明,待匹配数据是数据库中的原字符串的子串,例如,数据库中的原字符串为“张三风”,待匹配数据可以是“三风”、“张三”等子串。
65.s120,根据待匹配数据的字符串长度确定需要匹配的字符串长度区间。
66.如前所述,待匹配数据可以是数据库中原字符串的子串,用户可以选择匹配结果与待匹配数据的匹配精确度,如50%、60%、70%、80%等。匹配精确度越高匹配得到的匹配结果条数越少,反之,匹配精确度越低匹配得到的匹配结果条数越多。
67.进一步,根据匹配精确度以及待匹配数据的字符串长度,计算得到满足该匹配精确度的字符串长度区间。
68.在一种可能的实现方式中,如图2所示,根据匹配精确度以及待匹配数据的字符串长度,计算得到满足该匹配精确度的字符串长度区间的过程可以包括以下步骤:
69.s121,计算待匹配数据的字符串长度与所述匹配精确度的乘积,得到第一字符串长度阈值。
70.待匹配数据的字符串长度为l,匹配精确度为p,则第一字符串长度阈值,即区间的下限值min=l
×
p。
71.例如,匹配精确度为50%,待匹配数据的字符串长度是3,则min=3
×
50%=1.5,其中,字符长度均取整数,即min=2。
72.s122,计算待匹配数据的字符串长度与所述匹配精确度的商,得到第二字符串长度阈值。
73.第二字符串长度阈值,即区间的上限值max=l/p。例如,匹配精确度为50%,待匹配数据的字符串长度是3,则max=3/50%=6。
74.s123,以第一字符串长度阈值为下限值,以及以第二字符串长度阈值为上限值,得到字符串长度区间。
75.字符串长度区间为[min,max],例如,上述示例的字符串长度区间为[2,6]。
[0076]
在另一种可能的实现方式中,可以直接将待匹配数据的字符串长度作为需要匹配的字符串长度区间。例如,待匹配数据包括3个字符,则需要匹配的字符串长度区间为[3,3]。
[0077]
例如,在一种应用场景中,用户没有选择匹配精确度,系统默认匹配精确度是100%,直接将待匹配数据的字符串长度作为需要匹配的字符串长度区间。
[0078]
又如,在另一种应用场景中,系统未设置匹配精确度选项,此种应用场景下,系统可以直接将待匹配数据的字符串长度作为需要匹配的字符串长度区间。
[0079]
s130,基于字符串长度与存储空间分片之间的映射关系,确定字符串长度区间对应的目标存储空间分片。
[0080]
将数据库中的数据按其包含的字符串长度不同分片存储后,记录字符串长度与存储空间分片之间的映射关系,例如,字符串长度为1的数据均存在存储空间分片1中,长度为2的数据均存在存储空间分片2中,则长度1与存储空间分片1对应,长度2与存储空间分片2对应,该映射关系存储在电子设备中。
[0081]
在一种应用场景下,字符串长度区间包括至少两个字符串长度,此种情况下,根据字符串长度与存储空间分片之间的映射关系,匹配得到字符串长度区间包含的每个字符串长度对应的目标存储空间分片。
[0082]
例如,字符串长度区间为[2,6],则需要分别匹配字符串长度为2、3、4、5、6对应的各个存储空间分片。
[0083]
s140,查询目标存储空间分片中是否存在与所述待匹配数据相匹配的数据,得到匹配结果。
[0084]
利用匹配算法依次匹配各个目标存储空间分片存储的数据中,是否包含与待匹配数据相匹配的数据,例如,匹配算法可以采用最短路径智能匹配算法。当然,在本技术其他实施例中,还可以采用其他字符匹配算法,此处不再一一详述。
[0085]
例如,数据库中存有百万量级的数据,相关技术的方案是直接将待匹配数据与数据库中的数据进行全量匹配,而采用该方案则无需进行全量匹配,只需对部分存储空间分片中存储的数据进行匹配,缩小了匹配范围。
[0086]
本实施例提供的数据匹配方法数据库中的数据按照数据的字符串长度不同分别存储在不同的分片存储区间中;接收到待匹配数据后,先根据该待匹配数据的字符串长度确定出需要匹配的字符串长度区间。进一步,根据字符串长度与存储空间分片之间的映射关系,确定该字符串长度区间对应的目标存储空间分片。匹配该目标存储空间分片中是否需存在与待匹配数据相匹配的数据得到匹配结果。该方案将数据按字符串长度分片存储,匹配数据的过程中,先根据待匹配数据的字符串长度确定目标存储空间分片,即仅需对数据库中的部分数据进行匹配,无需对全量数据进行匹配,极大地缩小了匹配范围,因此缩短了匹配过程的耗时,提高了数据匹配效率。
[0087]
请参见图3,示出了本技术提供的数据库中的数据分片存储过程的流程图,如图3所示,该过程包括以下步骤:
[0088]
s210,确定数据库中各个数据的字符串长度。
[0089]
本技术的一个实施例中,字符串长度是指数据包含的字符串个数,例如,客户名称为“张三”,则该数据的字符串长度为2。
[0090]
此处的数据即准确数据,是指存储在数据库中的作为待匹配数据的匹配标准数据。
[0091]
需要说明的是,数据的字符串长度是指需要进行匹配的字段的字符串长度。
[0092]
仍以对客户名称进行匹配为例进行说明,数据库中存储的客户信息包括多项,如,客户名称、客户所在国家、证件号等信息,此处仅计算需要匹配的信息项(即,客户名称)所包含的字符串个数,而不是数据库中一条完整的数据所包含的字符串。
[0093]
s220,基于各数据的字符串长度,分别将各数据存储至与字符串长度相匹配的存储空间分片中。
[0094]
在一种可能的实现方式中,为每个字符串长度划分一个存储空间分片,例如,字符
串长度为1的数据均存在存储空间分片1中,字符串长度为2的数据均存在分片2中。
[0095]
在其他可能的实现方式中,某些长度的数据量较少,例如,对于客户名称而言,字符串长度为1和2的数据比较少,则可以将这两个长度的数据存在同一分片内。
[0096]
在本技术的一个实施例中,数据库中的数据均以key

value格式存储,如图4所示,数据的字符串长度作为key,相应长度的数据存储至value中。
[0097]
此外,同一字符串长度的数据包括多个,存储数据时,可以将字符串长度相同的全部数据以列表方式存储在value中。
[0098]
本实施例提供的数据分片存储过程,将数据库中的全部数据按数据的字符串长度分别存储至不同的存储空间分片内,这样,在进行数据匹配时,根据待匹配数据的字符串长度确定需要查询的存储空间分片,即仅需对数据库中的部分数据进行匹配,无需对全量数据进行匹配,因此缩小匹配范围,缩短了匹配过程的耗时,提高了数据匹配效率。
[0099]
相应于上述的数据匹配方法实施例,本技术实施例还提供了数据匹配装置实施例。
[0100]
请参见图5,示出了本技术实施例提供的一种数据匹配装置的框图,该装置可以应用于电子设备中,如图5所示,该装置可以包括:
[0101]
接收模块110,用于接收待匹配数据。
[0102]
字符串长度区间确定模块120,用于根据所述待匹配数据的字符串长度确定需要匹配的字符串长度区间。
[0103]
在本技术的一个实施例中,字符串长度区间确定模块120包括:
[0104]
匹配精确度获取子模块,用于获取输入的匹配精确度。
[0105]
长度区间确定子模块,用于根据所述匹配精确度和所述待匹配数据的字符串长度,计算得到满足所述匹配精确度的字符串长度区间。
[0106]
在一种可能的实现方式中,长度区间确定子模块包括:
[0107]
区间下限值计算子模块,用于计算所述待匹配数据的字符串长度与所述匹配精确度的乘积,得到第一字符串长度阈值。
[0108]
区间上限值计算子模块,用于计算所述待匹配数据的字符串长度与所述匹配精确度的商,得到第二字符串长度阈值。
[0109]
区间确定子模块,用于以所述第一字符串长度阈值为下限值,以及以所述第二字符串长度阈值为上限值,得到所述字符串长度区间。
[0110]
分片区间定位模块130,用于基于字符串长度与存储空间分片之间的映射关系,确定所述字符串长度区间对应的目标存储空间分片。
[0111]
在本技术的一个实施例中,字符串长度区间包括多个字符串长度,分片区间定位模块130用于:
[0112]
确定字符串长度区间包含的各个目标字符串长度,其中,目标字符串长度是指字符串长度区间中字符串长度为整数的字符串长度。
[0113]
基于字符串长度与存储空间分片之间的映射关系,匹配每个目标字符串长度对应的目标存储空间分片。
[0114]
数据匹配模块140,用于查询所述目标存储空间分片中是否存在与所述待匹配数据相匹配的数据,得到匹配结果,其中,不同字符串长度的所述准确数据存储在不同的存储
空间分片内。
[0115]
本实施例提供的数据匹配装置,数据库中的数据按照数据的字符串长度不同分别存储在不同的分片存储区间中;接收到待匹配数据后,先根据该待匹配数据的字符串长度确定出需要匹配的字符串长度区间。进一步,根据字符串长度与存储空间分片之间的映射关系,确定该字符串长度区间对应的目标存储空间分片。查询该目标存储空间分片中是否需存在与待匹配数据相匹配的数据得到匹配结果。由上述过程可知,该方案将数据按字符串长度分片存储,匹配数据的过程中,先根据待匹配数据的字符串长度确定目标存储空间分片,极大地缩小了匹配范围,缩短了匹配过程的耗时,因此提高了数据匹配效率。
[0116]
请参见图6,示出了本技术实施例又一种数据匹配装置的框图,该装置在图5所示实施例的基础上还包括:
[0117]
字符串长度确定模块210,用于确定各个准确数据的字符串长度。
[0118]
准确数据是指存储在数据库中数据,以准确数据为标准与待匹配数据进行匹配。
[0119]
分片存储模块220,用于基于字符串长度,分别将各个准确数据存储至与字符串长度相匹配的存储空间分片中。
[0120]
在一种可能的实现方式中,为每个字符串长度划分一个存储空间分片,换言之,将所述字符串长度相同的准确数据存储至同一存储空间分片。
[0121]
在一个实施例中,数据库中的数据均以key

value格式存储,数据的字符串长度作为key,相应长度的数据存储至value中。
[0122]
本实施例提供的数据匹配装置,在数据库中的全部数据按数据的字符串长度分别存储至不同的存储空间分片内,这样,在进行数据匹配时,根据待匹配数据的字符串长度确定需要查询的存储空间分片,即仅需对数据库中的部分数据进行匹配,无需对全量数据进行匹配,因此缩小匹配范围,缩短了匹配过程的耗时,提高了数据匹配效率。
[0123]
本技术提供了一种电子设备,该电子设备包括处理器和存储器,该存储器内存储有可在处理器上运行的程序。该处理器运行存储器内存储的该程序时实现上述任一种数据匹配方法实施例。
[0124]
本技术还提供了一种计算机可读存储介质,该存储介质中存储有程序,该程序由计算设备执行时实现上述的数据匹配方法。
[0125]
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0126]
需要说明的是,本说明书中的各个实施例记载的技术特征可以相互替代或组合,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0127]
本技术各实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
[0128]
本技术各实施例中的装置及终端中的模块和子模块可以根据实际需要进行合并、划分和删减。
[0129]
本技术所提供的几个实施例中,应该理解到,所揭露的终端,装置和方法,可以通
过其它的方式实现。例如,以上所描述的终端实施例仅仅是示意性的,例如,模块或子模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个子模块或模块可以结合或者可以集成到另一个模块,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0130]
作为分离部件说明的模块或子模块可以是或者也可以不是物理上分开的,作为模块或子模块的部件可以是或者也可以不是物理模块或子模块,即可以位于一个地方,或者也可以分布到多个网络模块或子模块上。可以根据实际的需要选择其中的部分或者全部模块或子模块来实现本实施例方案的目的。
[0131]
另外,在本技术各个实施例中的各功能模块或子模块可以集成在一个处理模块中,也可以是各个模块或子模块单独物理存在,也可以两个或两个以上模块或子模块集成在一个模块中。上述集成的模块或子模块既可以采用硬件的形式实现,也可以采用软件功能模块或子模块的形式实现。
[0132]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0133]
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
[0134]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献