CN111382323A - 一种数据检索优化方法、装置和计算机设备 - Google Patents
一种数据检索优化方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN111382323A CN111382323A CN201811632444.1A CN201811632444A CN111382323A CN 111382323 A CN111382323 A CN 111382323A CN 201811632444 A CN201811632444 A CN 201811632444A CN 111382323 A CN111382323 A CN 111382323A
- Authority
- CN
- China
- Prior art keywords
- node
- character string
- nodes
- prefix tree
- array
- 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.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据检索优化方法、装置和计算机设备。涉及数据存储领域,解决了现有的Trie树存储管理方式占用的存储空间非常大及影响查询索引效率的问题。该方法包括:按照前缀树自根节点向叶子节点的方向,比较检索的字符串或字符串集合与前缀树;查询当前匹配到的中间节点的可跳过的节点数;跳过所述可跳过的节点数,继续比较检索的字符串或字符串集合与所述前缀树;在存在与所述检索的字符串或字符串集合匹配的叶子节点时,返回所述叶子节点的数据。本发明提供的技术方案适用于前缀树存储,实现了低内存消耗、高检索效率的文件管理。
Description
技术领域
本发明涉及数据存储领域,尤其涉及一种数据检索优化方法、装置和计算机设备。
背景技术
前缀树或者字典树(Trie树)是一种树形结构,多用于统计、索引和排序大量的字符串,所以经常被用于海量数据的内存索引和搜索引擎系统,对文本词频进行统计。它的优点是最大限度地减少无谓的字符串比较,查询效率比较高。
Trie树的核心思想是空间换时间,Trie适用于存在大量公共前缀的字符串,利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。但通常使用标准Trie来做海量字符串的内存索引时内存消耗较大,索引效率低。
发明内容
本发明旨在解决上面描述的问题。
根据本发明的第一方面,提供了一种数据检索优化方法,包括:
按照前缀树自根节点向叶子节点的方向,比较检索的字符串或字符串集合与前缀树;
查询当前匹配到的中间节点的可跳过的节点数;
跳过所述可跳过的节点数,继续比较检索的字符串或字符串集合与所述前缀树;
在存在与所述检索的字符串或字符串集合匹配的叶子节点时,返回所述叶子节点的数据。
优选的,所述可跳过的节点数为:
在查找的字符串值指向单分支节点时,从单分支起始的节点至单分支结束的节点之间的节点数量。
优选的,按照前缀树自根节点向叶子节点的方向,比较检索的字符串或字符串集合与前缀树的步骤之前,还包括:
对原始前缀树的单分支节点进行裁剪;
创建位图数组,所述位图数组中的位图元素与所述原始前缀树中的中间节点一一对应,一个位图元素存储所述原始前缀树中一个中间节点的分支信息;
创建跳数数组,所述跳数数组中的元素与所述原始前缀树的中间节点一一对应,一个跳数数组中的元素存储所述原始前缀树中一个中间节点裁剪掉的从单分支起始的节点至单分支结束的节点之间的节点数量;
创建叶子节点数组,所述叶子节点数组中的元素与用户数据一一对应,一个叶子节点数组中的元素存储所述原始前缀树中一个索引字符串对应的文件位置。
优选的,查询当前匹配到的中间节点的可跳过的节点数的步骤包括:
根据当前匹配的中间节点查找所述跳数数组;
在所述中间节点对应的所述跳数数组中的元素存储有所述中间节点作为单分支起始的节点至单分支结束的节点之间的节点数量时,以所述节点数量作为可跳过的节点数。
优选的,所述跳数数组、位图数组和叶子节点数组的元素均为限制预设存储容量所能表示的最大数组元素个数。
优选的,所述限制预设存储容量为2byte。
根据本发明的另一方面,还提供了一种数据检索优化装置,包括:
跳数匹配模块,用于查询当前匹配到的中间节点的可跳过的节点数;
比较检索模块,用于按照前缀树自根节点向叶子节点的方向,比较检索的字符串或字符串集合与前缀树,跳过所述可跳过的节点数,继续比较检索的字符串或字符串集合与所述前缀树;
数据返回模块,用于在存在与所述检索的字符串或字符串集合匹配的叶子节点时,返回所述叶子节点的数据。
优选的,该装置还包括:
前缀树裁剪模块,用于对原始前缀树的单分支节点进行裁剪;
中间节点存储模块,用于创建位图数组,所述位图数组中的位图元素与所述原始前缀树中的中间节点一一对应,一个位图元素存储所述原始前缀树中一个中间节点的分支信息;
跳数存储模块,用于创建跳数数组,所述跳数数组中的元素与所述原始前缀树的中间节点一一对应,一个跳数数组中的元素存储所述原始前缀树中一个中间节点裁剪掉的从单分支起始的节点至单分支结束的节点之间的节点数量;
用户数据存储模块,用于创建叶子节点数组,所述叶子节点数组中的元素与用户数据一一对应,一个叶子节点数组中的元素存储所述原始前缀树中一个索引字符串或字符串集合对应的文件位置。
优选的,所述跳数匹配模块包括:
数组查找单元,用于根据当前匹配的中间节点查找所述跳数数组;
跳数确定单元,用于在所述中间节点对应的所述跳数数组中的元素存储有所述中间节点作为单分支起始的节点至单分支结束的节点之间的节点数量时,以所述节点数量作为可跳过的节点数。
根据本发明的另一方面,还提供了一种计算机设备,包括存储器和处理器,所述存储器上存储有计算机程序,所述处理器运行所述计算机程序时实现如上述的方法的步骤。
本发明提供了一种数据检索优化方法、装置和计算机设备。按照前缀树自根节点向叶子节点的方向,比较检索的字符串或字符串集合与前缀树,查询当前匹配到的中间节点的可跳过的节点数,跳过所述可跳过的节点数,继续比较检索的字符串或字符串集合与所述前缀树,并在存在与所述检索的字符串或字符串集合匹配的叶子节点时,返回所述叶子节点的数据。在Trie树基础上进行单分支节点的裁剪,从而极大减少Trie树存储占用的内存空间;采用3个数组存储Trie树替换指针存储Trie树的原有存储方式,进一步减少由于存储方式造成的存储空间消耗。解决了现有的Trie树存储管理方式占用的存储空间非常大及影响查询索引效率的问题,节省了存储空间、降低了内存消耗并提升了检索效率。
参照附图来阅读对于示例性实施例的以下描述,本发明的其他特性特征和优点将变得清晰。
附图说明
并入到说明书中并且构成说明书的一部分的附图示出了本发明的实施例,并且与描述一起用于解释本发明的原理。在这些附图中,类似的附图标记用于表示类似的要素。下面描述中的附图是本发明的一些实施例,而不是全部实施例。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,可以根据这些附图获得其他的附图。
图1示例性地示出了本发明的一实施例提供的一种数据检索优化方法的流程;
图2示例性地示出了一个根据根据一组排序的字符串或字符串集合构建的Trie树;
图3示例性地示出了裁剪后的Trie树;
图4示例性地示出了本发明的一实施例提供的一种数据检索优化装置的结构;
图5示例性地示出了图4中跳数匹配模块401的结构。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
现有标准Trie树中存在很多对查找不存在任何意义的节点,导致使用Trie树的存储海量字符串时,存储空间非常大,也影响了查询索引效率。
为了解决上述问题,本发明的实施例提供了一种数据检索优化方法、装置、计算机存储介质和计算机设备。首先对Trie树进行裁剪等处理,再重新定义存储Trie树的数据结构,在此基础上进行高效检索,节省了存储空间、降低了内存消耗并提升了检索效率。
本发明的一实施例提供了一种数据检索优化方法,使用该方法完成Trie树存储及查询的流程如图1所示,包括:
步骤101、对原始前缀树的单分支节点进行裁剪,存储裁剪后的前缀树。
由于Trie树一般情况下存储的是静态数据的索引(即后续不作修改的数据),且被索引到的字符串或字符串集合不一定存在,多分支的Trie节点是关键的,单分支的节点对定位一个存在的字符串或字符串集合没有任何帮助。因此,可在索引层对Trie树进行裁剪,裁剪掉单分支节点。不需要对每个Trie树分支都进行保存,在索引层只负责让存在的字符串或字符串集合可以被定位到,不存在的字符串或字符串集合在数据层反馈。
如图2所示,为根据一组排序的字符串或字符串集合构建的Trie树,其中abdfg中的g节点不需要保留,因此在abdfg这一字符串或字符串集合中去掉g节点,同时在父节点f中保存去掉(越过/裁剪)节点的个数1。因为存在的字符串或字符串集合前缀如果是abdf,它最后1个字符只能是g,这样abdfg在裁剪后的Trie树中正确的定位到。同理,去掉Trie树中其他单分支节点,于是图2中的裁剪之后的结果如图3所示。裁剪之后的Trie树除叶子节点之外,每个中间节点都有大于1个子节点;Trie树的大小跟字符串或字符串集合的长度无关,任意长度的字符串或字符串集合的集合都可以使用有限大小的Trie来索引;当所有节点都是二分的时候,Trie树节点的数量最多为2n-1个。
本发明实施例中使用3个数据结构来存储裁剪后的Trie树,分别保存Trie树的中间节点,叶子节点和裁剪越过节点数。
创建跳数数组,所述跳数数组中的元素与所述原始前缀树的中间节点一一对应,一个元素存储所述原始前缀树中一个中间节点裁剪掉的从单分支起始的节点至单分支结束的节点之间的节点数量。在查找的字符串或字符串集合值指向单分支节点时,从单分支起始的节点至单分支结束的节点之间的节点数量,即为可跳过的节点数。
创建位图数组,所述位图数组中的位图元素与所述原始前缀树中的中间节点一一对应,一个位图元素存储所述原始前缀树中一个中间节点的分支信息;
创建叶子节点数组,所述叶子节点数组中的元素与用户数据一一对应,一个元素存储所述原始前缀树中一个索引字符串或字符串集合对应的文件位置。
所述跳数数组、位图数组和叶子节点数组的元素均为2byte。
以下是一种通过位图数据存储中间节点分支信息的具体示例:
//Compacted array item:
//uint16_t branch_bitmap;
//uint16_t children_offset;
Compacted_array_t inner;
对于所有的中间节点,用一个数组,具体为压缩数组(Compacted array)来保存。每个branch的大小为N bit,因此存储branch信息需要2N bit,相应的,压缩数据的元素数量为log2(2*n)bit,其中n为叶子节点数量/构建Trie数字符串或字符串集合的数量。
例如,每个元素(item)用一个2byte的bit位(bitmap)来保存每个子节点的分支(branch)信息。每个branch是1个4bit的word,因为最多只有16个branch,所以只需2byte就足够了。再用一个2byte的uint16表示第一个子节点id,因为一个节点的所有子节点id是连续的,所以只需要保存第一个子节点,数组最多只有n/2个元素,n为构建Trie数字符串或字符串集合的数量。
以下是叶子节点的存储的一个具体示例:
//Compacted array item:
//xx_t userdata;
Compacted_array_t leaves;
对于所有的叶子节点用一个Compacted array来保存,一个item对应一个叶子节点,item保存userdata(offset,size)。userdata为用户自定义的数据,可用于定位索引字符串或字符串集合所在文件的位置。
以下为裁剪越过节点数量(即可跳过的节点数据)的存储的一个具体示例:
//Compacted array item:
//uint16_t
Compacted_array_t skips;
本步骤中对单分支节点做了裁剪,因此需要一个Compacted array来保存裁剪的信息,对于裁剪的节点只需要保存越过后续的节点数即可,使用一个2byte的uint16表示。
对于裁剪后Trie树的存储,由于裁剪掉大量对于检索没有任何帮助信息的节点。通过实践。用32G内存,大约可以索引32亿个文件。
步骤102、按照前缀树自根节点向叶子节点的方向,比较检索的字符串或字符串集合与前缀树。
对于字符串或字符串集合的检索,只需要从步骤102中的3个数据结构(即跳数数组、位图数组、叶子节点数组)进行检索即可,检索字符串或字符串集合时,先从中间节点inner数据结构中的根节往叶子节点比较。
步骤103、查询当前匹配到的中间节点的可跳过的节点数。
本步骤中,对当前匹配到的节点,首先查找是否存在对应的可路过的节点数。
步骤104、跳过所述可跳过的节点数,继续比较检索的字符串或字符串集合与所述前缀树。
本步骤中,在跳过可跳过的节点数后,继续比较检索的字符串或字符串集合与前缀树。
例如,如果发现该节点在skips数据结构中,则在字符串或字符串集合中越过skips对应的字符数,再继续在inner中比较。
步骤105、在存在与所述检索的字符串或字符串集合匹配的叶子节点时,返回所述叶子节点的数据。
如果发现在leaves数据结构中存储在该字符串或字符串集合对应的叶子节点,则返回对应的userdata数据。否则,返回检索失败。
本发明的了实施例还提供了一种数据检索优化装置,其结构如图4所示,包括:
跳数匹配模块401,用于查询当前匹配到的中间节点的可跳过的节点数;
比较检索模块402,用于按照前缀树自根节点向叶子节点的方向,比较检索的字符串或字符串集合与前缀树,跳过所述可跳过的节点数,继续比较检索的字符串或字符串集合与所述前缀树;
数据返回模块403,用于在存在与所述检索的字符串或字符串集合匹配的叶子节点时,返回所述叶子节点的数据。
优选的,该装置还包括:
前缀树裁剪模块404,用于对原始前缀树的单分支节点进行裁剪;
中间节点存储模块405,用于创建位图数组,所述位图数组中的位图元素与所述原始前缀树中的中间节点一一对应,一个位图元素存储所述原始前缀树中一个中间节点的分支信息;
跳数存储模块406,用于创建跳数数组,所述跳数数组中的元素与所述原始前缀树的中间节点一一对应,一个所述跳数数组中的元素存储所述原始前缀树中一个中间节点裁剪掉的从单分支起始的节点至单分支结束的节点之间的节点数量;
用户数据存储模块407,用于创建叶子节点数组,所述叶子节点数组中的元素与用户数据一一对应,一个所述叶子节点数组元素存储所述原始前缀树中一个索引字符串或字符串集合对应的文件位置。
优选的,所述跳数匹配模块401的结构如图5所示,包括:
数组查找单元4011,用于根据当前匹配的中间节点查找所述跳数数组;
跳数确定单元4012,用于在所述中间节点对应的所述跳数数组中的元素存储有所述中间节点作为单分支起始的节点至单分支结束的节点之间的节点数量时,以所述节点数量作为可跳过的节点数。
本发明的一实施例还提供了一种计算机存储介质,该存储介质上存储有计算机程序,所述计算机程序被运行时实现本发明的实施例提供的数据检索优化方法的步骤。
本发明的一实施例还提供了一种计算机设备,包括存储器和处理器,所述存储器上存储有计算机程序,所述处理器运行所述计算机程序时实现本发明的实施例提供的数据检索优化方法的步骤。
本发明的实施例提供了一种数据检索优化方法、装置和计算机设备。按照前缀树自根节点向叶子节点的方向,比较检索的字符串或字符串集合与前缀树,查询当前匹配到的中间节点的可跳过的节点数,跳过所述可跳过的节点数,继续比较检索的字符串或字符串集合与所述前缀树,并在存在与所述检索的字符串或字符串集合匹配的叶子节点时,返回所述叶子节点的数据。在Trie树基础上进行单分支节点的裁剪,从而极大减少Trie树存储占用的内存空间;采用3个数组存储Trie树替换指针存储Trie树的原有存储方式,进一步减少由于存储方式造成的存储空间消耗。解决了现有的Trie树存储管理方式占用的存储空间非常大及影响查询索引效率的问题,节省了存储空间、降低了内存消耗并提升了检索效率。
上面描述的内容可以单独地或者以各种方式组合起来实施,而这些变型方式都在本发明的保护范围之内。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制。尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种数据检索优化方法,其特征在于,包括:
按照前缀树自根节点向叶子节点的方向,比较检索的字符串或字符串集合与前缀树;
查询当前匹配到的中间节点的可跳过的节点数;
跳过所述可跳过的节点数,继续比较检索的字符串或字符串集合与所述前缀树;
在存在与所述检索的字符串或字符串集合匹配的叶子节点时,返回所述叶子节点的数据。
2.根据权利要求1所述的数据检索优化方法,其特征在于,所述可跳过的节点数为:
在查找的字符串值指向单分支节点时,从单分支起始的节点至单分支结束的节点之间的节点数量。
3.根据权利要求2所述的数据检索优化方法,其特征在于,按照前缀树自根节点向叶子节点的方向,比较检索的字符串或字符串集合与前缀树的步骤之前,还包括:
对原始前缀树的单分支节点进行裁剪;
创建位图数组,所述位图数组中的位图元素与所述原始前缀树中的中间节点一一对应,一个位图元素存储所述原始前缀树中一个中间节点的分支信息;
创建跳数数组,所述跳数数组中的元素与所述原始前缀树的中间节点一一对应,一个跳数数组中的元素存储所述原始前缀树中一个中间节点裁剪掉的从单分支起始的节点至单分支结束的节点之间的节点数量;
创建叶子节点数组,所述叶子节点数组中的元素与用户数据一一对应,一个叶子节点数组中的元素存储所述原始前缀树中一个索引字符串对应的文件位置。
4.根据权利要求3所述的数据检索优化方法,其特征在于,查询当前匹配到的中间节点的可跳过的节点数的步骤包括:
根据当前匹配的中间节点查找所述跳数数组;
在所述中间节点对应的所述跳数数组中的元素存储有所述中间节点作为单分支起始的节点至单分支结束的节点之间的节点数量时,以所述节点数量作为可跳过的节点数。
5.根据权利要求3所述的数据检索优化方法,其特征在于,所述跳数数组、位图数组和叶子节点数组的元素均为限制预设存储容量所能表示的最大数组元素个数。
6.根据权利要求5所述的数据检索优化方法,其特征在于,所述限制预设存储容量为2byte。
7.一种数据检索优化装置,其特征在于,包括:
跳数匹配模块,用于查询当前匹配到的中间节点的可跳过的节点数;
比较检索模块,用于按照前缀树自根节点向叶子节点的方向,比较检索的字符串或字符串集合与前缀树,跳过所述可跳过的节点数,继续比较检索的字符串或字符串集合与所述前缀树;
数据返回模块,用于在存在与所述检索的字符串或字符串集合匹配的叶子节点时,返回所述叶子节点的数据。
8.根据权利要求7所述的数据检索优化装置,其特征在于,该装置还包括:
前缀树裁剪模块,用于对原始前缀树的单分支节点进行裁剪;
中间节点存储模块,用于创建位图数组,所述位图数组中的位图元素与所述原始前缀树中的中间节点一一对应,一个位图元素存储所述原始前缀树中一个中间节点的分支信息;
跳数存储模块,用于创建跳数数组,所述跳数数组中的元素与所述原始前缀树的中间节点一一对应,一个跳数数组中的元素存储所述原始前缀树中一个中间节点裁剪掉的从单分支起始的节点至单分支结束的节点之间的节点数量;
用户数据存储模块,用于创建叶子节点数组,所述叶子节点数组中的元素与用户数据一一对应,一个叶子节点数组中的元素存储所述原始前缀树中一个索引字符串或字符串集合对应的文件位置。
9.根据权利要求8所述的数据检索优化装置,其特征在于,所述跳数匹配模块包括:
数组查找单元,用于根据当前匹配的中间节点查找所述跳数数组;
跳数确定单元,用于在所述中间节点对应的所述跳数数组中的元素存储有所述中间节点作为单分支起始的节点至单分支结束的节点之间的节点数量时,以所述节点数量作为可跳过的节点数。
10.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器上存储有计算机程序,所述处理器运行所述计算机程序时实现如权利要求1-6中任意一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811632444.1A CN111382323B (zh) | 2018-12-29 | 2018-12-29 | 一种数据检索优化方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811632444.1A CN111382323B (zh) | 2018-12-29 | 2018-12-29 | 一种数据检索优化方法、装置和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111382323A true CN111382323A (zh) | 2020-07-07 |
CN111382323B CN111382323B (zh) | 2023-08-11 |
Family
ID=71218120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811632444.1A Active CN111382323B (zh) | 2018-12-29 | 2018-12-29 | 一种数据检索优化方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111382323B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112631793A (zh) * | 2020-11-26 | 2021-04-09 | 贝壳技术有限公司 | 人员数据标识生成方法及装置 |
CN114238709A (zh) * | 2021-12-02 | 2022-03-25 | 阿里巴巴(中国)有限公司 | 字符串匹配方法、装置、设备和可读存储介质 |
CN116501781A (zh) * | 2023-06-28 | 2023-07-28 | 中博信息技术研究院有限公司 | 一种增强前缀树的数据快速统计方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7539153B1 (en) * | 2008-05-05 | 2009-05-26 | Huawei Technologies Co., Ltd. | Method and apparatus for longest prefix matching based on a trie |
CN101499094A (zh) * | 2009-03-10 | 2009-08-05 | 焦点科技股份有限公司 | 一种数据压缩存储并检索的方法及系统 |
CN102281196A (zh) * | 2011-08-11 | 2011-12-14 | 中兴通讯股份有限公司 | 决策树生成方法及设备、基于决策树报文分类方法及设备 |
CN103780491A (zh) * | 2012-10-23 | 2014-05-07 | 上海博达数据通信有限公司 | 一种实现IPv6快速路由查找的方法 |
CN106067039A (zh) * | 2016-05-30 | 2016-11-02 | 桂林电子科技大学 | 基于决策树剪枝的模式匹配方法 |
CN107967219A (zh) * | 2017-11-27 | 2018-04-27 | 北京理工大学 | 一种基于tcam的大规模字符串高速查找方法 |
CN108197313A (zh) * | 2018-02-01 | 2018-06-22 | 中国计量大学 | 通过16位Trie树实现空间优化的词典索引方法 |
-
2018
- 2018-12-29 CN CN201811632444.1A patent/CN111382323B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7539153B1 (en) * | 2008-05-05 | 2009-05-26 | Huawei Technologies Co., Ltd. | Method and apparatus for longest prefix matching based on a trie |
CN101577662A (zh) * | 2008-05-05 | 2009-11-11 | 华为技术有限公司 | 一种基于树形数据结构的最长前缀匹配方法和装置 |
CN101499094A (zh) * | 2009-03-10 | 2009-08-05 | 焦点科技股份有限公司 | 一种数据压缩存储并检索的方法及系统 |
CN102281196A (zh) * | 2011-08-11 | 2011-12-14 | 中兴通讯股份有限公司 | 决策树生成方法及设备、基于决策树报文分类方法及设备 |
CN103780491A (zh) * | 2012-10-23 | 2014-05-07 | 上海博达数据通信有限公司 | 一种实现IPv6快速路由查找的方法 |
CN106067039A (zh) * | 2016-05-30 | 2016-11-02 | 桂林电子科技大学 | 基于决策树剪枝的模式匹配方法 |
CN107967219A (zh) * | 2017-11-27 | 2018-04-27 | 北京理工大学 | 一种基于tcam的大规模字符串高速查找方法 |
CN108197313A (zh) * | 2018-02-01 | 2018-06-22 | 中国计量大学 | 通过16位Trie树实现空间优化的词典索引方法 |
Non-Patent Citations (2)
Title |
---|
姜涛: ""基因表达数据挖掘关键技术研究"", pages 006 - 16 * |
高莹: ""哈希表和多比特Trie树相结合的IPv6路由查找算法的研究"", pages 139 - 2 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112631793A (zh) * | 2020-11-26 | 2021-04-09 | 贝壳技术有限公司 | 人员数据标识生成方法及装置 |
CN114238709A (zh) * | 2021-12-02 | 2022-03-25 | 阿里巴巴(中国)有限公司 | 字符串匹配方法、装置、设备和可读存储介质 |
CN116501781A (zh) * | 2023-06-28 | 2023-07-28 | 中博信息技术研究院有限公司 | 一种增强前缀树的数据快速统计方法 |
CN116501781B (zh) * | 2023-06-28 | 2023-09-12 | 中博信息技术研究院有限公司 | 一种增强前缀树的数据快速统计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111382323B (zh) | 2023-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8037034B2 (en) | Methods of creating a dictionary for data compression | |
Aoe | An efficient digital search algorithm by using a double-array structure | |
US8255398B2 (en) | Compression of sorted value indexes using common prefixes | |
CN111382323A (zh) | 一种数据检索优化方法、装置和计算机设备 | |
US11106646B2 (en) | Systems, methods, and data structures for high-speed searching or filtering of large datasets | |
US9195738B2 (en) | Tokenization platform | |
JP4698738B2 (ja) | 複数セグメント文字列の検索 | |
CN107153647B (zh) | 进行数据压缩的方法、装置、系统和计算机程序产品 | |
Schuegraf et al. | A comparison of algorithms for data base compression by use of fragments as language elements | |
US8010501B2 (en) | Computer-implemented method, computer program product and system for creating an index of a subset of data | |
CN108197313B (zh) | 通过16位Trie树实现空间优化的词典索引方法 | |
CN108984626B (zh) | 一种数据处理方法、装置及服务器 | |
US8392433B2 (en) | Self-indexer and self indexing system | |
US8051060B1 (en) | Automatic detection of separators for compression | |
CN115794861A (zh) | 基于特征摘要的离线数据查询复用方法及其应用 | |
CN110825747B (zh) | 一种信息存取方法、装置和介质 | |
CN111382086B (zh) | 一种前缀树存储方法、装置、存储介质和计算机设备 | |
JPH10240741A (ja) | 木構造型データの管理方法 | |
CN112579003B (zh) | 键值对的调整方法、装置、存储介质以及电子装置 | |
CN115438140A (zh) | 一种基于后缀索引的敏感词检索方法及系统 | |
CN118113777A (zh) | 一种应用于天翼云分布式块存储的基数树查询方法 | |
CN115809248A (zh) | 数据查询方法和装置以及存储介质 | |
KR100503423B1 (ko) | Mstp에서의 메모리 맵핑 장치 및 방법 | |
KR100981317B1 (ko) | 소형 무선단말기용 디비엠에스의 그룹핑 분류된 트리구조인덱스 제공방법과 이를 이용한 정보검색방법 | |
CN115563344A (zh) | 基于块索引的Lucene加速优化方法 |
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 | ||
GR01 | Patent grant |