CN104572994B - 用于搜索数据的方法和装置 - Google Patents

用于搜索数据的方法和装置 Download PDF

Info

Publication number
CN104572994B
CN104572994B CN201510004636.8A CN201510004636A CN104572994B CN 104572994 B CN104572994 B CN 104572994B CN 201510004636 A CN201510004636 A CN 201510004636A CN 104572994 B CN104572994 B CN 104572994B
Authority
CN
China
Prior art keywords
searched
bitmap
data
page
target
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
Application number
CN201510004636.8A
Other languages
English (en)
Other versions
CN104572994A (zh
Inventor
张金玉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201510004636.8A priority Critical patent/CN104572994B/zh
Publication of CN104572994A publication Critical patent/CN104572994A/zh
Application granted granted Critical
Publication of CN104572994B publication Critical patent/CN104572994B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing

Abstract

本发明实施例涉及用于搜索数据的方法和装置。该方法包括:将待搜索页面划分为M个分组;生成该待搜索页面的索引项,该索引项包括M个位图,该M个位图中的第i个位图用于指示该M个分组中第i个分组包括的待搜索数据,其中,M和i为正整数。本发明实施例的用于搜索数据的方法和装置,由于利用了页面级别的索引,因此比行级别索引占用的存储空间小;并且能够同时支持前缀匹配、后缀匹配和中缀匹配,解决了无法进行中缀匹配和无法同时满足前缀匹配和后缀匹配的问题,提高了数据搜索的效率。

Description

用于搜索数据的方法和装置
技术领域
本发明涉及通信领域,并且具体地,涉及用于搜索数据的方法和装置。
背景技术
在数据库中Like操作,即模糊匹配,使用通配符匹配,但很多情况下不能很好的使用index。Like通配符使用一般有三种形式:利用前缀匹配、后缀匹配和中间匹配进行搜索。例如,当搜索前缀为150的电话号码时,可以使用常用的index技术,如:btree,通过Selectcount(tel)from information where tel like‘150%’进行搜索;当搜索后缀为110的电话号码时,也可以使用常用的index技术,如:btree,但是在建立索引时要进行如下处理:create index info_idx on information(reverse(tel)),则前缀搜索和后缀搜索是无法同时进行的;当搜索中缀为110的电话号码时,现有的index技术则很难实现。
因此,like操作的性能是数据库中的一个痛点,针对like匹配操作的特点,目前一个btree索引无法同时满足前缀匹配和后缀匹配,也无法满足中缀匹配的方式,而且btree索引占用的存储空间也很大。
发明内容
本发明提供了一种用于搜索数据的方法和装置,能够同时支持前缀匹配、后缀匹配和中缀匹配,提高数据搜索效率。
第一方面,提供了一种用于搜索数据的方法,该方法包括:将待搜索页面划分为M个分组;生成该待搜索页面的索引项,该索引项包括M个位图,该M个位图中的第i个位图用于指示该M个分组中第i个分组包括的待搜索数据,其中,M和i为正整数。
结合第一方面,在第一方面的第一种可能的实现方式中,该第i个位图占用多个比特,该多个比特中第x个比特表示该第i个分组是否包括第x个预设字符,其中,x为正整数。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,该方法还包括:根据该索引项中的一个或多个目标位图,搜索该待搜索页面,该M个位图包括该一个或多个目标位图。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,该根据该索引项中的一个或多个目标位图,搜索该待搜索页面,包括:确定该一个或多个目标位图中的每一个目标位图指示的待搜索数据是否包括该每一个目标位图对应的目标数据;当该每一个目标位图指示的待搜索数据包括该每一个目标位图对应的目标数据时,对该待搜索页面进行逐项搜索;当该一个或多个目标位图中至少一个目标位图指示的待搜索数据不包括该至少一个目标位图对应的目标数据时,不搜索该待搜索页面,并搜索新的待搜索页面的索引项。
结合第一方面或第一方面的第一种至第三种可能的实现方式中的任一种可能的实现方式,在第一方面的第四种可能的实现方式中,该M个分组包括该待搜索页面中每一个待搜索项按顺序排列的前M1个待搜索数据和/或后M2个待搜索数据,其中,M1和M2为正整数。
第二方面,提供了一种用于搜索数据的装置,该装置包括:划分模块,用于将待搜索页面划分为M个分组;生成模块,用于生成该待搜索页面的索引项,该索引项包括M个位图,该M个位图中的第i个位图用于指示该M个分组中第i个分组包括的待搜索数据,其中,M和i为正整数。
结合第二方面,在第二方面的第一种可能的实现方式中,该生成模块生成的该第i个位图占用多个比特,该多个比特中第x个比特表示该第i个分组是否包括第x个预设字符,其中,x为正整数。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,该装置还包括:搜索模块,用于根据该索引项中的一个或多个目标位图,搜索该待搜索页面,该M个位图包括该一个或多个目标位图。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,该搜索模块具体用于:确定该一个或多个目标位图中的每一个目标位图指示的待搜索数据是否包括该每一个目标位图对应的目标数据;当该每一个目标位图指示的待搜索数据包括该每一个目标位图对应的目标数据时,对该待搜索页面进行逐项搜索;当该一个或多个目标位图中至少一个目标位图指示的待搜索数据不包括该至少一个目标位图对应的目标数据时,不搜索该待搜索页面,并搜索新的待搜索页面的索引项。
结合第二方面或第二方面的第一种至第三种可能的实现方式中的任一种可能的实现方式,在第二方面的第四种可能的实现方式中,该M个分组包括该待搜索页面中每一个待搜索项按顺序排列的前M1个待搜索数据和/或后M2个待搜索数据,其中,M1和M2为正整数。
基于上述技术方案,本发明实施例的用于搜索数据的方法和装置,将待搜索页面划分为M个分组,并生成包括M个位图的该搜索页面的索引项,其中,第i个位图用于指示待搜索页面中第i个分组中包括的待搜索数据。由于该搜索利用了页面级别的索引,因此比行级别索引占用的存储空间小;并且能够同时支持前缀匹配、后缀匹配和中缀匹配,解决了无法进行中缀匹配和无法同时满足前缀匹配和后缀匹配的问题,提高了数据搜索的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的用于搜索数据的方法的示意性流程图。
图2是根据本发明实施例的用于搜索数据的方法的另一示意性流程图。
图3是根据本发明实施例的用于搜索数据的方法的应用的示意图。
图4是根据本发明实施例的用于搜索数据的装置的示意性框图。
图5是根据本发明实施例的用于搜索数据的装置的另一示意性框图。
图6是根据本发明另一实施例的用于搜索数据的装置的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
图1示出了本发明实施例的用于搜索数据的方法的示意性流程图。该方法100可以由用于搜索数据的装置执行。如图1所示,该方法100包括:
S110,将待搜索页面划分为M个分组;
S120,生成该待搜索页面的索引项,该索引项包括M个位图,该M个位图中的第i个位图用于指示该M个分组中第i个分组包括的待搜索数据,其中,M和i为正整数。
具体地,确定待搜索页面,该待搜索页面包括多个待搜索项,在该待搜索页面中确定M个分组以及M个分组中包括的数据;生成该待搜索页面的索引项,该索引项包括M个位图,M个位图中第i个位图用于指示该待搜索页面中的M个分组中第i个分组包括的待搜索数据。
因此,本发明实施例的用于搜索数据的方法,将待搜索页面划分为M个分组,并生成包括M个位图的该搜索页面的索引项,其中,第i个位图用于指示待搜索页面中在第i个分组中包括的待搜索数据。由于该搜索利用了页面级别的索引,因此比行级别索引占用的存储空间小;并且能够同时支持前缀匹配、后缀匹配和中缀匹配,解决了无法进行中缀匹配和无法同时满足前缀匹配和后缀匹配的问题,提高了数据搜索的效率。
在S110中,确定待搜索页面,该待搜索页面中可以包括多个待搜索项,在该待搜索页面中确定M个分组以及M个分组中包括的数据。具体地,该待搜索页面中包括的待搜索项的个数可以由该待搜索页面的存储量决定,从而生成包括不同个数待搜索项的待搜索页面,也可以根据设定值确定该待搜索页面包括的待搜索项的个数,例如每个待搜索页面均包括十个待搜索项,本发明并不限于此。
在本发明实施例中,待搜索页面中可以包括多个待搜索项,在该待搜索页面中确定M个分组,可以将该待搜索页面中的每一个待搜索项均按照相同规则划分到M个分组中,得到该待搜索页面的M个分组。例如当待搜索项为电话号码时,确定将该待搜索页面划分成5个分组,如一位号码对应一个分组,取前五位号码划分5个分组,则在该待搜索页面中的每一个待搜索项都进行相同的划分,即每一个待搜索号码均以一位号码对应一个分组,取前五位号码分别划分至该待搜索页面的五个分组中。可选地,该M个分组中的每一个分组可以包括每个待搜索项的一个或多个字符或数据。例如,当该待搜索项为电话号码时,该M个分组中每一个分组可以为待搜索的每个电话号码的其中一位数字,也可以为该电话号码中连续两位或多位数字,但本发明并不限于此。
在本发明实施例中,待搜索页面中的M个分组可以为该待搜索页面中的每一个待搜索项按顺序排列的前M1个待搜索数据和/或后M2个待搜索数据构成的分组,其中,M1和M2为正整数。例如,当该待搜索项为电话号码时,以M个分组中每一个分组只包括一位电话号码为例,M个分组可以为电话号码中任意M位数字,也可以包括该电话号码的前M1位号码构成的M1个分组,也可以包括该电话号码的后M2位号码构成的M2个分组,本发明并不限于此。又例如,当该待搜索项为电话号码时,以M个分组中每一个分组包括多位电话号码为例,则将每个待搜索项进行划分分组时,M个分组中包括前M1位数字组成的一个分组或多个分组,也包括后M2位数字组成的一个或多个分组。
在S120中,生成该待搜索页面的索引项,该索引项包括M个位图,该M个位图中的第i个位图用于指示该待搜索页面中的M个分组中第i个分组包括的待搜索数据,其中,M和i为正整数。例如,当待搜索页面内的待搜索项为电话号码时,以M个分组中每一个分组只包括一位电话号码为例,M个分组分别取该电话号码的前M位数字,生成该搜索页面的索引项时,该索引项包括M个位图。确定该搜索页面中每个索引项的第i位包括的待搜索数据,则通过索引项中的第i个位图指示该待搜索页面中的第i个分组包括的待搜索数据。如确定每个电话号码的第二位数字,该待搜索页面包括的所有电话号码的第二位数字只包括5和8,则M个位图中的第2个位图则用于指示该待搜索页面的第二个分组包括的数字只有5和8。
在本发明实施例中,该索引项中的每个位图可以由多个字节组成,每个字节可以包括8个比特bits,每个位图占用的所有比特中每个比特表示一个预设字符是否存在,即该多个比特中第x个比特用来表示所有待搜索项中第i个分组是否包括第x个预设字符。例如,每个位图有8个字节,则每个位图由64bits组成,将该64bits中0至9bit位指示的预设字符为数字0至9,10至35bit位指示的预设字符为字母a至z,36至61bit位指示的预设字符为字母A至Z,第62bit位指示的预设字符为其它字符,第63bit位可以为空。当第i个位图要指示的待搜索数据包括5和8时,预设字符5对应的位图中第4bit位和预设字符8对应的位图中第7bit位则为“1”,其余bit位则为“0”。
因此,本发明实施例的用于搜索数据的方法,将待搜索页面中划分为M个分组,并生成包括M个位图的该搜索页面的索引项,其中,第i个位图用于指示待搜索页面在第i个分组中包括的待搜索数据。由于该搜索利用了页面级别的索引,因此比行级别索引占用的存储空间小;并且能够同时支持前缀匹配、后缀匹配和中缀匹配,解决了无法进行中缀匹配和无法同时满足前缀匹配和后缀匹配的问题,提高了数据搜索的效率。
可选地,在本发明实施例中,如图2所示,该方法100还包括:
S140,根据该索引项中的一个或多个目标位图,搜索该待搜索页面,该M个位图包括该一个或多个目标位图。
在本发明实施例中,当需要对待搜索页面进行搜索时,可以根据该待搜索页面的索引项进行搜索。具体地,根据需要搜索的目标数据确定索引项中一个或多个位图为用于搜索的目标位图,当该一个或多个目标位图中的每个目标位图指示的待搜索数据包括该每个目标位图对应的目标数据时,则该待搜索页面中可能包括需要搜索的目标数据,对该数据页面进行逐项搜索,确定该待搜索页面的目标数据。当该一个或多个目标位图中存在至少一个目标位图,该至少一个目标位图指示的待搜索数据不包括该至少一个目标位图对应的目标数据,则该待搜索页面一定不包括需要搜索得到的目标数据,则不对该待搜索页面进行搜索,而继续对新的待搜索页面的索引项进行上述搜索过程。
可选地,作为一个实施例,如当需要搜索以“1348”开头的电话号码时,目标数据即为“1348”开头的电话号码,若索引项中只包括6个位图,分别用于指示各待搜索项的前三位和后三位,则将该索引项中用于指示前三位电话号码的位图作为目标位图。确定指示第一位电话号码的第一个目标位图所指示的号码数据是否包括对应的第一个目标数据“1”;确定指示第二位电话号码的第二个目标位图所指示的号码数据是否包括对应的第二个目标数据“3”;确定指示第三位电话号码的第三个目标位图所指示的号码数据是否包括对应的第三个目标数据“4”。当三个目标位图指示的号码数据均包括对应的目标数据时,则对该数据页面进行逐项搜索,搜索得到以“1348”开头的电话号码,当三个目标位图中存在至少一个目标位图指示的号码数据不包括对应的目标数据时,则不搜索还数据页面,而搜索新的数据页面的索引项。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
因此,本发明实施例的用于搜索数据的方法,将待搜索页面中的每个待搜索项按照相同规则划分M个分组,并生成包括M个位图的该搜索页面的索引项,其中,第i个位图用于指示待搜索页面中所有待搜索项在第i个分组中包括的待搜索数据。由于该搜索利用了页面级别的索引,因此比行级别索引占用的存储空间小;并且能够同时支持前缀匹配、后缀匹配和中缀匹配,解决了无法进行中缀匹配和无法同时满足前缀匹配和后缀匹配的问题,提高了数据搜索的效率。
上文中结合图1和图2,详细描述了根据本发明实施例的用于搜索数据的方法,下文中将以具体实施例为例,结合图3来描述根据本发明实施例的用于搜索数据的方法的应用。
图3示出了根据本发明实施例的用于搜索数据的方法的应用。如图3所示,在本发明实施例中,确定待搜索数据页面1,该待搜索页面中包括五个人名以及对应的电话号码,分别为“Xiaoming 15022190189”、“Wanggang15535687098”、“Lily 15025496896”、“Liming18546987321”和“Yan215024896987”。可选地,可以将五个人名作为待搜索项,也可以将五个电话号码作为待搜索项,此处以将五个电话号码作为该页面的待搜索项为例进行说明。
可选地,在本发明实施例中,将该待搜索页面划分为M个分组,这里以划分6个分组为例。可以将该待搜索项中的任意几项作为待搜索项的分组,此处以将待搜索项的五组号码中每一组号码的前三位和后三位作为待搜索项的6个分组为例进行说明。对应地,生成该待搜索页面的索引项,该索引项包括6个位图,其中第i个位图用于指示该待搜索页面的6个分组中的第i个分组包括的待搜索的内容,例如五个待搜索项在第4分组中包括的待搜索数据为:1、3、8和9,则第4位图用于指示待搜索数据为1、3、8和9。
在本发明实施例中,该索引项中的每个位图有8个字节,则每个位图由64bits组成,可以将该64bits中0至9bit位指示的预设字符为数字0至9,10至35bit位指示的预设字符为字母a至z,36至61bit位指示的预设字符为字母A至Z,第62bit位指示的预设字符为其它字符,第63bit位为空,当该位图指示的待搜索数据包括某一个预设字符时,在该比特位显示“1”,不包括时,在该比特位显示“0”。如图3所示,根据预设字符,得到6个包括64bits的位图,每个位图用于指示待搜索数据中是否包括预设字符。例如,第4位图用于指示的待搜索数据为1、3、8和9,则在表示预设字符1、3、8和9的比特位上,即第0、2、7、8bit上显示为“1”,其余比特位显示为“0”。可选地,当待搜索项为人名时,则生成的索引项中的位图中,每个位图中表示预设字符是字母的比特,在该位图指示的待搜索数据包括相应预设字符时显示为“1”,不包括时显示为“0”。
由于在本发明实施例中以电话号码为搜索对象进行说明,则生成的位图中仅在表示数字的比特位上可能为“1”,在表示字母或其它字符的第10至第64比特位上均为“0”。具体地,由于在第1分组中,待搜索数据包括数字1,位图1用于指示该第1分组,则位图1的第0至第9比特位分别为“0100000000”,其余位为“0”。类似地,在第2分组中,待搜索数据包括数字5和8,位图2用于指示该第2分组,则位图2的第0至第9比特位分别为“0000010010”,其余位为“0”;在第3分组中,待搜索数据包括数字0和5,位图3用于指示该第3分组,则位图3的第0至第9比特位分别为“1000010000”,其余位为“0”;在第4分组中,待搜索数据包括数字0、1、3、8和9,位图4用于指示该第4分组,则位图4的第0至第9比特位分别为“1101000011”,其余位为“0”;在第5分组中,待搜索数据包括数字2、8和9,位图5用于指示该第5分组,则位图5的第0至第9比特位分别为“0010000011”,其余位为“0”;在第6分组中,待搜索数据包括数字1、6、7、8和9,位图6用于指示该第6分组,则位图6的第0至第9比特位分别为“0100001111”,其余位为“0”;
在本发明实施例中,根据生成的包括6个位图的索引项搜索该数据页面1。具体地,例如,当需要搜索的目标数据为“185”开头的电话号码时或需要搜索的目标数据为“1854”开头的电话号码时,根本该搜索页面的索引项可以确定目标位图均为第1、2和3个位图。以需要搜索的目标数据为“185”开头的电话号码为例,先搜索第1个位图,该目标位图对应的目标数据为“1”,搜索该位图确定该位图指示的待搜索数据包括数据“1”,同样地,搜索第2和3个位图,均包括对应的目标数据“8”和“5”,则该数据页面可能包括需要搜索的目标数据“185”开头的电话号码,因此,对该数据页面1逐项进行搜索,得到以“185”开头的电话号码。可选地,通过上述相同的上述方法,当搜索的目标数据为“155”时,虽然搜索的三个目标位图均满足条件,可以逐个搜索该数据页面中的每个待搜索项,但是在进行对数据页面逐项搜索时,可以确定该数据页面不包括以“155”开头的电话号码,则继续搜索下一个数据页面。
在本发明实施例中,当需要搜索的目标数据为“189”开头的电话号码时,确定目标位图则为第1、2和3个位图。先搜索第1和2个位图,该目标位图对应的目标数据为“1”和“8”,搜索第1个位图确定该位图指示的待搜索数据包括数据“1”,搜索第2个位图确定该位图指示的待搜索数据包括数据“8”,同样地,搜索第3个位图,但第3个位图指示的待搜索数据不包括对应的目标数据“9”,则该数据页面不包括需要搜索的以“189”开头的电话号码的目标数据,因此,不再对该数据页面进行搜索,而搜索新的数据页面。
在本发明实施例中,当需要搜索的目标数据为“189”结尾的电话号码,确定目标位图则为第4、5和6个位图,每个目标位图的搜索方法与上述方法相同,在此不再赘述。
可选地,在本发明实施例中,可以同时搜索以“185”开头和以“189”结尾的电话号码,即可以同时进行前缀和后缀的搜索,相应地,目标位图则为第1至6个位图。可选地,当本发明实施例中的在确定待搜索项的分组时,将每个待搜索项的几个中间项作为分组时,如第4位到第8位电话号码分别作为5个分组时,本方法实施例的搜索数据的方法可以进行中缀搜索,搜索方法与前缀和后缀搜索一致,在此不再赘述。
因此,本发明实施例的用于搜索数据的方法,将待搜索页面划分为M个分组,并生成包括M个位图的该搜索页面的索引项,其中,第i个位图用于指示待搜索页面的第i个分组中包括的待搜索数据。由于该搜索利用了页面级别的索引,因此比行级别索引占用的存储空间小;并且能够同时支持前缀匹配、后缀匹配和中缀匹配,解决了无法进行中缀匹配和无法同时满足前缀匹配和后缀匹配的问题,提高了数据搜索的效率。
上文中结合图1至图3,详细描述了根据本发明实施例的用于搜索数据的方法,下面将结合图4至图5,描述根据本发明实施例的用于搜索数据的装置。
如图4所示,根据本发明实施例的用于搜索数据的装置200包括:
划分模块210,用于将待搜索页面划分为M个分组;
生成模块220,用于生成该待搜索页面的索引项,该索引项包括M个位图,该M个位图中的第i个位图用于指示该M个分组中第i个分组包括的待搜索数据,其中,M和i为正整数。
具体地,划分模块210可以用于确定待搜索页面,该待搜索页面包括多个待搜索项,在该待搜索页面中确定M个分组以及M个分组中包括的数据;生成模块220用于生成该待搜索页面的索引项,该索引项包括M个位图,M个位图中第i个位图用于指示该待搜索页面中的M个分组中第i个分组包括的待搜索数据。
因此,本发明实施例的用于搜索数据的装置,将待搜索页面中划分为M个分组,并生成包括M个位图的该搜索页面的索引项,其中,第i个位图用于指示待搜索页面中在第i个分组中包括的待搜索数据。由于该搜索利用了页面级别的索引,因此比行级别索引占用的存储空间小;并且能够同时支持前缀匹配、后缀匹配和中缀匹配,解决了无法进行中缀匹配和无法同时满足前缀匹配和后缀匹配的问题,提高了数据搜索的效率。
在本发明实施例中,通过划分模块210确定待搜索页面,该待搜索页面中可以包括多个待搜索项,在该待搜索页面中确定M个分组以及M个分组中包括的数据。具体地,该待搜索页面中包括的待搜索项的个数可以由该待搜索页面的存储量决定,从而生成包括不同个数待搜索项的待搜索页面,也可以根据设定值确定该待搜索页面包括的待搜索项的个数,例如每个待搜索页面均包括十个待搜索项,本发明并不限于此。
应理解,在本发明实施例中,待搜索页面中可以包括多个待搜索项,在该待搜索页面中确定M个分组,划分模块210可以将该将待搜索页面中的每一个待搜索项均按照相同规则划分到M个分组中,例如当待搜索项为电话号码时,确定将该待搜索页面划分成5个分组,如一位号码对应一个分组,取前五位号码划分5个分组,则在该待搜索页面中的每一个待搜索项都进行相同的划分,即每一个待搜索号码均以一位号码对应一个分组,取前五位号码划分至该搜索页面的5个分组中。可选地,该M个分组中的每一个分组可以包括每个待搜索项的一个或多个字符或数据。例如,当该待搜索项为电话号码时,该M个分组中每一个分组可以为该电话号码的其中一位数字,也可以为待搜索的每个电话号码中连续两位或多位数字,但本发明并不限于此。
可选地,作为一个实施例,待搜索页面通过划分模块210划分的M个分组,该M个分组可以为该待搜索页面中的每一个待搜索项按顺序排列的前M1个待搜索数据和/或后M2个待搜索数据,其中,M1和M2为正整数。例如,当该待搜索项为电话号码时,以M个分组中每一个分组只包括一位电话号码为例,M个分组可以分别为电话号码中任意M位数字构成的分组,也可以包括该电话号码的前M1位号码构成的M1个分组,也可以包括该电话号码的后M2位号码构成的M2个分组,本发明并不限于此。又例如,当该待搜索项为电话号码时,以M个分组中每一个分组包括多位电话号码为例,则将每个待搜索项进行划分分组时,M个分组中包括前M1位数字组成的一个分组或多个分组,也包括后M2位数字组成的一个或多个分组。
在本发明实施例中,生成模块220用于生成该待搜索页面的索引项,该索引项包括M个位图,该M个位图中的第i个位图用于指示该待搜索页面中的M个分组中第i个分组包括的待搜索数据,其中,M和i为正整数。例如,当待搜索页面内的待搜索项为电话号码时,以M个分组中每一个分组只包括一位电话号码为例,M个分组分别取该电话号码的前M位数字,生成模块220生成该搜索页面的索引项时,该索引项包括M个位图。确定该搜索页面中每个索引项的第i位包括的待搜索数据,则通过索引项中的第i个位图指示该待搜索页面中的第i位包括的待搜索数据。如确定每个电话号码的第二位数字,该待搜索页面包括的所有电话号码的第二位数字只包括5和8,则M个位图中的第2个位图则用于指示该待搜索页面的第二个分组包括的数字只有5和8。
可选地,作为一个实施例,生成模块220生成的该索引项中的每个位图可以由多个字节组成,每个字节可以包括8个比特bits,每个位图占用的所有比特中每个比特表示一个预设字符是否存在,即该多个比特中第x个比特用来表示所有待搜索项中第i个分组是否包括第x个预设字符。例如,每个位图有8个字节,则每个位图由64bits组成,将该64bits中0至9bit位指示的预设字符为数字0至9,10至35bit位指示的预设字符为字母a至z,36至61bit位指示的预设字符为字母A至Z,第62bit位指示的预设字符为其它字符,第63bit位可以为空。当第i个位图要指示的待搜索数据包括5和8时,预设字符5对应的位图中第4bit位和预设字符8对应的位图中第7bit位则为“1”,其余bit位则为“0”。
因此,本发明实施例的用于搜索数据的装置,将待搜索页面划分为M个分组,并生成包括M个位图的该搜索页面的索引项,其中,第i个位图用于指示待搜索页面在第i个分组中包括的待搜索数据。由于该搜索利用了页面级别的索引,因此比行级别索引占用的存储空间小;并且能够同时支持前缀匹配、后缀匹配和中缀匹配,解决了无法进行中缀匹配和无法同时满足前缀匹配和后缀匹配的问题,提高了数据搜索的效率。
可选地,在本发明实施例中,如图5所示,该装置200还包括:
搜索模块230,用于根据该索引项中的一个或多个目标位图,搜索该待搜索页面,该M个位图包括该一个或多个目标位图。
在本发明实施例中,当需要对待搜索页面进行搜索时,可以通过搜索模块230根据该待搜索页面的索引项进行搜索。具体地,搜索模块230根据需要搜索的目标数据确定索引项中一个或多个位图为用于搜索的目标位图,当该一个或多个目标位图中的每个目标位图指示的待搜索数据包括该每个目标位图对应的目标数据时,则该待搜索页面中可能包括需要搜索的目标数据,对该数据页面进行逐项搜索,确定该待搜索页面的目标数据。当该一个或多个目标位图中存在至少一个目标位图,该至少一个目标位图指示的待搜索数据不包括该至少一个目标位图对应的目标数据,则该待搜索页面一定不包括需要搜索得到的目标数据,则不对该待搜索页面进行搜索,而继续对新的待搜索页面的索引项进行上述搜索过程。
可选地,作为一个实施例,如当需要搜索以“1348”开头的电话号码时,目标数据即为“1348”开头的电话号码,若索引项中只包括6个位图,分别用于指示待搜索项的前三位和后三位,则搜索模块230可以将该索引项中用于指示前三位电话号码的位图作为目标位图。确定指示第一位电话号码的第一个目标位图所指示的号码数据是否包括对应的第一个目标数据“1”;确定指示第二位电话号码的第二个目标位图所指示的号码数据是否包括对应的第二个目标数据“3”;确定指示第三位电话号码的第三个目标位图所指示的号码数据是否包括对应的第三个目标数据“4”。当三个目标位图指示的号码数据均包括对应的目标数据时,则对该数据页面进行逐项搜索,搜索得到以“1348”开头的电话号码,当三个目标位图中存在至少一个目标位图指示的号码数据不包括对应的目标数据时,则不搜索还数据页面,而搜索新的数据页面的索引项。
应理解,根据本发明实施例的触摸屏解锁的装置200可对应于执行本发明实施例中的方法100,并且触摸屏解锁的装置200中的各个模块的上述和其它操作和/或功能分别为了实现图1和图2中的各个方法的相应流程,为了简洁,在此不再赘述。
因此,本发明实施例的用于搜索数据的装置,将待搜索页面划分为M个分组,并生成包括M个位图的该搜索页面的索引项,其中,第i个位图用于指示待搜索页面在第i个分组中包括的待搜索数据。由于该搜索利用了页面级别的索引,因此比行级别索引占用的存储空间小;并且能够同时支持前缀匹配、后缀匹配和中缀匹配,解决了无法进行中缀匹配和无法同时满足前缀匹配和后缀匹配的问题,提高了数据搜索的效率。
如图6所示,本发明实施例还提供了一种用于搜索数据的装置300,包括处理器310、存储器320和总线系统330。其中,处理器310和存储器320通过总线系统330相连,该存储器320用于存储指令,该处理器310用于执行该存储器320存储的指令。该存储器320存储程序代码,且处理器310可以调用存储器320中存储的程序代码执行以下操作:将待搜索页面划分为M个分组;生成该待搜索页面的索引项,该索引项包括M个位图,该M个位图中的第i个位图用于指示该M个分组中第i个分组包括的待搜索数据,其中,M和i为正整数。
因此,本发明实施例的用于搜索数据的装置,将待搜索页面划分为M个分组,并生成包括M个位图的该搜索页面的索引项,其中,第i个位图用于指示待搜索页面在第i个分组中包括的待搜索数据。由于该搜索利用了页面级别的索引,因此比行级别索引占用的存储空间小;并且能够同时支持前缀匹配、后缀匹配和中缀匹配,解决了无法进行中缀匹配和无法同时满足前缀匹配和后缀匹配的问题,提高了数据搜索的效率。
应理解,在本发明实施例中,该处理器310可以是中央处理单元(CentralProcessing Unit,简称为“CPU”),该处理器310还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器320可以包括只读存储器和随机存取存储器,并向处理器310提供指令和数据。存储器320的一部分还可以包括非易失性随机存取存储器。例如,存储器320还可以存储设备类型的信息。
该总线系统330除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统330。
在实现过程中,上述方法的各步骤可以通过处理器310中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器320,处理器310读取存储器320中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
可选地,作为一个实施例,处理器310可以调用存储器320中存储的程序代码执行以下操作:该第i个位图占用多个比特,该多个比特中第x个比特表示该第i个分组是否包括第x个预设字符,其中,x为正整数。
可选地,作为一个实施例,处理器310可以调用存储器320中存储的程序代码执行以下操作:根据该索引项中的一个或多个目标位图,搜索该待搜索页面,该M个位图包括该一个或多个目标位图。
可选地,作为一个实施例,处理器310可以调用存储器320中存储的程序代码执行以下操作:确定该一个或多个目标位图中的每一个目标位图指示的待搜索数据是否包括该每一个目标位图对应的目标数据;当该每一个目标位图指示的待搜索数据包括该每一个目标位图对应的目标数据时,对该待搜索页面进行逐项搜索;当该一个或多个目标位图中至少一个目标位图指示的待搜索数据不包括该至少一个目标位图对应的目标数据时,不搜索该待搜索页面,并搜索新的待搜索页面的索引项。
可选地,作为一个实施例,处理器310可以调用存储器320中存储的程序代码执行以下操作:该M个分组包括该待搜索页面中的该每一个待搜索项按顺序排列的前M1个待搜索数据和/或后M2个待搜索数据,其中,M1和M2为正整数。
应理解,根据本发明实施例的用于搜索数据的装置300可对应于本发明实施例中的用于搜索数据的装置200,并可以对应于执行根据本发明实施例的方法100中的相应主体,并且用于搜索数据的装置300中的各个模块的上述和其它操作和/或功能分别为了实现图1至图2中的各个方法的相应流程,为了简洁,在此不再赘述。
因此,本发明实施例的用于搜索数据的装置,将待搜索页面划分为M个分组,并生成包括M个位图的该搜索页面的索引项,其中,第i个位图用于指示待搜索页面在第i个分组中包括的待搜索数据。由于该搜索利用了页面级别的索引,因此比行级别索引占用的存储空间小;并且能够同时支持前缀匹配、后缀匹配和中缀匹配,解决了无法进行中缀匹配和无法同时满足前缀匹配和后缀匹配的问题,提高了数据搜索的效率。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种用于搜索数据的方法,其特征在于,包括:
将待搜索页面划分为M个分组,所述待搜索页面包括多个待搜索项;
生成所述待搜索页面的索引项,所述索引项包括M个位图,所述M个位图中的第i个位图用于指示所述M个分组中第i个分组包括的待搜索数据,其中,M和i为正整数;
其中,所述将待搜索页面划分为M个分组,包括:
将所述多个待搜索项中的每个待搜索项按照预设规则划分到M个分组中,获得所述待搜索页面的所述M个分组。
2.根据权利要求1所述的方法,其特征在于,所述第i个位图占用多个比特,所述多个比特中第x个比特表示所述第i个分组是否包括第x个预设字符,其中,x为正整数。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
根据所述索引项中的一个或多个目标位图,搜索所述待搜索页面,所述M个位图包括所述一个或多个目标位图。
4.根据权利要求3所述的方法,其特征在于,所述根据所述索引项中的一个或多个目标位图,搜索所述待搜索页面,包括:
确定所述一个或多个目标位图中的每一个目标位图指示的待搜索数据是否包括所述每一个目标位图对应的目标数据;
当所述每一个目标位图指示的待搜索数据包括所述每一个目标位图对应的目标数据时,对所述待搜索页面进行逐项搜索;
当所述一个或多个目标位图中至少一个目标位图指示的待搜索数据不包括所述至少一个目标位图对应的目标数据时,不搜索所述待搜索页面,并搜索新的待搜索页面的索引项。
5.根据权利要求1所述的方法,其特征在于,所述M个分组包括所述待搜索页面中每一个待搜索项按顺序排列的前M1个待搜索数据和/或后M2个待搜索数据,其中,M1和M2为正整数。
6.一种数据搜索的装置,其特征在于,包括:
划分模块,用于将待搜索页面划分为M个分组,所述待搜索页面包括多个待搜索项;
生成模块,用于生成所述待搜索页面的索引项,所述索引项包括M个位图,所述M个位图中的第i个位图用于指示所述M个分组中第i个分组包括的待搜索数据,其中,M和i为正整数;
所述划分模块具体用于:
将所述多个待搜索项中的每个待搜索项按照预设规则划分到M个分组中,获得所述待搜索页面的所述M个分组。
7.根据权利要求6所述的装置,其特征在于,所述生成模块生成的所述第i个位图占用多个比特,所述多个比特中第x个比特表示所述第i个分组是否包括第x个预设字符,其中,x为正整数。
8.根据权利要求6或7所述的装置,其特征在于,所述装置还包括:
搜索模块,用于根据所述索引项中的一个或多个目标位图,搜索所述待搜索页面,所述M个位图包括所述一个或多个目标位图。
9.根据权利要求8所述的装置,其特征在于,所述搜索模块具体用于:
确定所述一个或多个目标位图中的每一个目标位图指示的待搜索数据是否包括所述每一个目标位图对应的目标数据;
当所述每一个目标位图指示的待搜索数据包括所述每一个目标位图对应的目标数据时,对所述待搜索页面进行逐项搜索;
当所述一个或多个目标位图中至少一个目标位图指示的待搜索数据不包括所述至少一个目标位图对应的目标数据时,不搜索所述待搜索页面,并搜索新的待搜索页面的索引项。
10.根据权利要求6所述的装置,其特征在于,所述M个分组包括所述待搜索页面中每一个待搜索项按顺序排列的前M1个待搜索数据和/或后M2个待搜索数据,其中,M1和M2为正整数。
CN201510004636.8A 2015-01-06 2015-01-06 用于搜索数据的方法和装置 Active CN104572994B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510004636.8A CN104572994B (zh) 2015-01-06 2015-01-06 用于搜索数据的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510004636.8A CN104572994B (zh) 2015-01-06 2015-01-06 用于搜索数据的方法和装置

Publications (2)

Publication Number Publication Date
CN104572994A CN104572994A (zh) 2015-04-29
CN104572994B true CN104572994B (zh) 2018-12-14

Family

ID=53089056

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510004636.8A Active CN104572994B (zh) 2015-01-06 2015-01-06 用于搜索数据的方法和装置

Country Status (1)

Country Link
CN (1) CN104572994B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6880956B2 (ja) * 2017-04-10 2021-06-02 富士通株式会社 解析プログラム、解析方法および解析装置
CN108733681B (zh) * 2017-04-14 2021-10-22 华为技术有限公司 信息处理方法及装置
CN108536740B (zh) * 2018-03-07 2020-06-26 上海连尚网络科技有限公司 一种确定搜索结果的方法、介质以及设备
CN110297836B (zh) * 2019-07-11 2021-07-20 杭州云梯科技有限公司 基于压缩位图方式的用户标签存储方法和检索方法
CN110837584B (zh) * 2019-10-18 2022-10-04 中山大学 一种分块并行构造后缀数组的方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1925515A (zh) * 2005-08-31 2007-03-07 海尔集团公司 一种查询电话号码的方法及系统
CN101416150A (zh) * 2006-02-06 2009-04-22 泰克莱克公司 用于索引、验证、恢复和合并由范围限定数字数据索引的数据库的方法、系统和计算机程序产品
US7693875B2 (en) * 2006-01-09 2010-04-06 International Business Machines Corporation Method for searching a data page for inserting a data record

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1925515A (zh) * 2005-08-31 2007-03-07 海尔集团公司 一种查询电话号码的方法及系统
US7693875B2 (en) * 2006-01-09 2010-04-06 International Business Machines Corporation Method for searching a data page for inserting a data record
CN101416150A (zh) * 2006-02-06 2009-04-22 泰克莱克公司 用于索引、验证、恢复和合并由范围限定数字数据索引的数据库的方法、系统和计算机程序产品

Also Published As

Publication number Publication date
CN104572994A (zh) 2015-04-29

Similar Documents

Publication Publication Date Title
CN104572994B (zh) 用于搜索数据的方法和装置
CN108769111A (zh) 一种服务器连接方法、计算机可读存储介质及终端设备
CN110351877A (zh) 非竞争随机接入资源配置方法和设备
US20090186597A1 (en) System and method for managing a phone book in a mobile phone
CN104657481B (zh) 一种存储、查询数据的方法及装置
CN108804188A (zh) 界面换肤方法及装置
CN107562743B (zh) 数据存储方法和装置、数据查找请求的处理方法和装置
CN108243407A (zh) 一种多个无线模块设备网络接口管理的方法及终端设备
CN106802927A (zh) 一种数据存储方法及查询方法
CN105095212B (zh) 创建哈希表的方法和设备
US9465859B2 (en) Computer-implemented method of arranging text items in a predefined order
CN112152641B (zh) 数据交织方法、装置及数据发送设备
CN111131049B (zh) 路由表项的处理方法及装置
CN105843859B (zh) 数据处理的方法、装置和设备
US9201982B2 (en) Priority search trees
CN101082969A (zh) 在统一的日历视图中分类显示多套日历事件的方法及系统
CN110266834A (zh) 基于互联网协议地址的地区查找方法及装置
CN109992253A (zh) 从表生成源代码及使用该源代码的方法、系统和设备
CN104732040B (zh) 产品模型化布局方法及装置
CN105988842B (zh) 一种转移应用程序的方法及终端
CN112817967A (zh) 流量数据存储方法、装置、电子设备及存储介质
CN102891888B (zh) 一种数据访问方法及相关设备、系统
CN109558387A (zh) 身份证号的处理方法、装置、存储介质及终端
CN115328892B (zh) 一种业务表单数据结构处理方法、系统、电子设备及介质
EP3247125A1 (en) Shuffle play method and device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant