数据检索方法及装置的制作方法

文档序号:6437804阅读:143来源:国知局
专利名称:数据检索方法及装置的制作方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据检索方法及装置。
背景技术
随着数字信息量的爆炸式增长,如何在大量的已有数据中检索到所需的数据成为了一个重要课题。通过对已有数据建立适当的数据索引,可以实现数据的快速检索,而当数据索引的数据量较大,不能完全保存在快速存储器中时,需要使用慢速存储器来保存索引。 快速存储器具有访问速度快,容量较小的特点,例如内存、闪存、相变存储器(Phase Change Memory,PCM)等。相对而言,硬盘等慢速存储器容量较大,但传输带宽显著低于快速存储器, 访问速度较慢,导致数据检索延迟较大,数据检索效率较低。为了解决数据检索延迟较大的问题,现有技术中提出了一种通过缓存保存索引的数据检索方法。具体的,将在外部存储器中访问过的数据索引暂时保存在缓存中,以便重复检索相同数据时在缓冲中命中,减少访问外部存储器的几率,从而降低数据检索延迟,提高数据检索效率。现有技术中由于缓冲的存储空间较小,只能存储近期访问过的数据索引,只有短时间内重复检索相同的数据才能在缓冲中命中。而在数据检索系统中,数据访问的随机性较大,并发访问用户较多,导致缓存中的数据频繁替换,命中的几率较低,因此不能有效降低数据检索延迟和提高数据检索效率。

发明内容
本发明一方面提供一种数据检索方法及装置,能够在有限的快速存储器中保证大量采样特征值的查询,并提高数据检索效率。本发明的实施例采用如下技术方案—种数据检索方法,包括根据待查询的一级索引项中记录的采样特征值对应的采样长度以及预先设置的采样算法对输入完整特征值进行采样得到输入采样特征值,其中所述一级索引项保存在快速存储器的一级索引表中;若所述输入采样特征值与所述待查询的一级索引项中记录的任一采样特征值匹配,则根据所述一级索引项中记录的慢速存储器地址从慢速存储器中读取对应的二级索引项,所述二级索引项包括完整特征值集合;若所述输入完整特征值与所述完整特征值集合中的一个完整特征值匹配,则根据所述完整特征值对应的数据内容的存储地址获取数据内容。一种数据检索装置,包括采样单元,用于根据待查询的一级索引项中记录的采样特征值对应的采样长度以及预先设置的采样算法对输入完整特征值进行采样得到输入采样特征值,其中所述一级索引项保存在快速存储器的一级索引表中;
一级检索单元,用于在所述输入采样特征值与所述待查询的一级索引项中记录的任一采样特征值匹配时,根据所述一级索引项中记录的慢速存储器地址从慢速存储器中读取对应的二级索引项,所述二级索引项包括完整特征值集合;二级检索单元,用于在所述输入完整特征值与所述完整特征值集合中的一个完整特征值匹配时,根据所述完整特征值对应的数据内容的存储地址获取数据内容。本发明实施例提供的数据检索方法及装置,根据输入完整特征值在快速存储器中查询一级索引项中记录的采样特征值,并在匹配成功的情况下,再从慢速存储器的二级索引项中获取对应的完整特征值集合进行匹配,既可以在有限的快速存储器中实现大量记录的查询,又可以降低数据检索延迟,提高数据检索效率。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例1中的数据检索方法流程图;图2为本发明实施例2中的一种数据检索方法流程图;图3为本发明实施例2中的一级索引项和完整特征值的结构示意图;图4为本发明实施例2中的另一种数据检索方法流程图;图5为本发明实施例2中的另一种数据检索方法流程图;图6为本发明实施例2中的另一种数据检索方法流程图;图7为本发明实施例2中的另一种数据检索方法流程图;图8为本发明实施例3中的一种数据检索装置组成示意图;图9为本发明实施例3中的另一种数据检索装置组成示意图;图10为本发明实施例3中的另一种数据检索装置组成示意图;图11为本发明实施例3中的另一种数据检索装置组成示意图;图12为本发明实施例3中的另一种数据检索装置组成示意图;图13为本发明实施例3中的另一种数据检索装置组成示意图;图14为本发明实施例3中的另一种数据检索装置组成示意图;图15为本发明实施例3中的另一种数据检索装置组成示意图;图16为本发明实施例3中的另一种数据检索装置组成示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例1本发明实施例提供了一种数据检索方法,如图1所示,包括
101、根据待查询的一级索引项中记录的采样特征值对应的采样长度以及预先设置的采样算法对输入完整特征值进行采样得到输入采样特征值,其中所述一级索引项保存在快速存储器的一级索引表中。可以理解的是,快速存储器和慢速存储器是相对而言的,具体可以根据访问速度、 容量大小以及资源的稀缺程度进行设置。例如,内存的访问速度最快,其次有闪存,再次有普通硬盘。可选的,快速存储器可以为内存,慢速存储器可以选择容量相对较大的闪存或硬盘。快速存储器还可以为闪存,相应的慢速存储器可以为普通硬盘。快速存储器和慢速存储器包括但不局限于上述存储器,可以根据检索需要进行调整与配合,本发明实施例将不在一一赘述。在本实施例中,若输入关键字为预设的完整特征值形式,则可以采用输入关键字作为输入完整特征值;若输入关键字不为预设的完整特征值形式,则可以根据预定的计算函数将输入关键字计算得到固定长度的输入完整特征值。102、若所述输入采样特征值与所述待查询的一级索引项中记录的任一采样特征值匹配,则根据所述一级索引项中记录的慢速存储器地址从慢速存储器中读取对应的二级索引项,所述二级索引项包括完整特征值集合。在本实施例中,二级索引项存储在慢速存储器中,包括完整特征值集合,其中二级索引项中的完整特征值与一级索引项中的采样特征值一一对应。103、若所述输入完整特征值与所述完整特征值集合中的一个完整特征值匹配,则根据所述完整特征值对应的数据内容的存储地址获取数据内容。其中,二级索引项中还保存有每个完整特征值对应的数据内容的存储地址,根据匹配的完整特征值对应的数据内容的存储地址可以获取与输入完整特征值对应的数据内容。本发明实施例的方法可以由处理器或专用集成电路执行。本发明实施例提供的数据检索方法,根据输入完整特征值在快速存储器中查询一级索引项中记录的采样特征值,并在匹配成功的情况下,直接从慢速存储器中获取对应的数据内容,或者再从慢速存储器的二级索引项中获取对应的完整特征值集合进行匹配,与现有技术中通过从慢速存储器逐一读取索引项进行匹配的技术相比,既可以在有限的快速存储器中实现大量记录的查询,又可以降低数据检索延迟,提高数据检索效率。实施例2为了使本领域技术人员更好的理解本发明实施例提供的数据检索方法,现对该方法进行详细的说明。如图2所示,本发明实施例提供了一种数据检索方法,包括201、根据待查询的一级索引项中记录的采样特征值对应的采样长度以及预先设置的采样算法对输入完整特征值进行采样得到输入采样特征值,其中所述一级索引项保存在快速存储器的一级索引表中。其中,一级索引项中记录的采样特征值为对应的完整特征值的采样,而对应的完整特征值存储在二级索引项中,其中完整特征值可以为数据内容的关键字经过安全哈希函数计算得到的固定长度的完整特征值,也可以为将数据内容的关键字经其他计算函数计算得到的数字指纹,本发明实施例这里不做限定。可以理解的是,由于输入完整特征值也是根据预定计算函数计算得到的固定长度的输入完整特征值,根据待查询的一级索引项中记录的采样特征值对应的采样长度和预先设置的采样算法对输入完整特征值进行采样后得到的输入采样特征值的长度与待查询的一级索引项中记录的采样特征值的长度也是相同的。 其中,根据预先设置的采样算法对输入完整特征值进行采样的方法可以为根据待查询的一级索引项中记录的采样特征值对应的采样长度,从输入完整特征值的第一位开始采样, 得到所述采样长度的采样特征值。在本实施例中,根据可用于数据检索的快速存储器大小和完整特征值的长度, 可以预先规定一级索引项的位数,使得一级索引项中可以保存一个完整特征值。在本实施例中,一级索引项由标志位部分、特征值部分以及一级索引项对应的逻辑块寻址模式 (Logical Block Addressing,LBA)地址三个部分组成。其中,标志位可以表示该一级索引项中记录的采样特征值数量,根据一级索引项中记录的采样特征值数量和完整特征值的位数,可以计算得出待查询的一级索引项中记录的采样特征值对应的采样长度。LBA地址可以指向实际数据内容的存储地址,也可以指向二级索引项地址。例如,如图3(a)所示为一个一级索引项,该一级索引项的前8位为标志位,末端6个字节的LBA地址为该一级索引项对应的慢速存储器地址。当一级索引项中记录的采样特征值为完整特征值时,该LBA地址可以为对应数据内容的存储地址;当一级索引项中记录的采样特征值不为完整特征值时,该 LBA地址也可以为完整特征值集合的在二级索引项中的存储地址。202、判断所述输入采样特征值与所述待查询的一级索引项中记录的任一采样特征值是否匹配;若所述输入采样特征值与所述待查询的一级索引项中记录的任一采样特征值匹配,则执行步骤203 ;若所述输入采样特征值与所述待查询的一级索引项中记录的采样特征值均不匹配,则执行步骤206。其中,将输入采样特征值与待查询的以及索引项中记录的采样特征值进行比对, 若所述输入采样特征值与所述待查询的一级索引项中记录的采样特征值均不匹配,可以说明输入完整特征值不在索引中,即本次检索的数据不在索引中。若所述输入采样特征值与所述待查询的一级索引项中记录的任一采样特征值匹配,不足以说明输入完整特征值在索引中,因为匹配的部分仅仅是采样的部分,可以进一步根据二级索引项中的完整特征值判断所述输入完整特征值是否在索引中。203、根据所述一级索引项中记录的慢速存储器地址从慢速存储器中读取对应的二级索引项,所述二级索引项包括完整特征值集合。其中,二级索引项保存在慢速存储器中,包括完整特征值集合,每个一级索引项对应一个完整特征值集合,并将对应的完整特征值集合的慢速存储器地址存储在一级索引项中。仍以图3(a)中的一级索引项为例,末端6个字节的LBA地址指向慢速存储器中对应的二级索引项,将该二级索引项读取到快速存储器中,以便进一步将输入完整特征值与该二级索引项中的完整特征值集合进行匹配。204、判断所述输入完整特征值与所述完整特征值集合中的任一完整特征值是否匹配;若所述输入完整特征值与所述完整特征值集合中的任一完整特征值匹配,则执行步骤205;若所述输入完整特征值与所述完整特征值集合中的完整特征值均不匹配,则执行步骤206。在本实施例中,步骤202将一级索引项中的采样特征值与输入采样特征值匹配可以快速排除采样特征值部分不匹配的输入完整特征值,并且通过步骤203限定了应参与比对的完整特征值的范围,因此将输入完整特征值与步骤203中读取的完整特征值集合进行比对便可以找到与输入完整特征值匹配的完整特征值以及对应的数据内容。205、根据所述完整特征值对应的数据内容的存储地址获取数据内容。其中,在二级索引项中保存有完整特征值集合以及各个完整特征值对应的数据内容的存储地址。若所述输入完整特征值与所述完整特征值集合中的任一完整特征值匹配, 则根据所述完整特征值对应的数据内容的存储地址,查询数据内容的存储地址指向的慢速存储器地址,获取对应的数据内容。206、判定查询失败。其中,判定查询失败即为判定输入完整特征值不在索引中,即本次检索的数据不在索引中。进一步的,为了在一级索引项中没有数据的情况下,快速判断本次检索的数据不在索引中,在步骤201之前,还包括207、判断所述采样特征值数量是否为零;若所述采样特征值数量不为零,则执行步骤201 ;若所述采样特征值数量为零,则执行步骤206。其中,根据待查询的一级索引项的标志位,可以获取该一级索引项中记录的采样特征值数量,若所述采样特征值数量为零,表示该一级索引记录项中没有记录,因此可以判定本次检索的数据不在索引中。在本实施例中,可以进一步判断所述采样特征值数量是否为1,若所述采样特征值数量为1,表示该一级索引项中保存了一个记录,并且这个记录为完整特征值。若所述采样特征值数量大于1,则表示该一级索引项中保存的记录为对完整特征值进行采样后得到的采样特征值。进一步的,如图4所示,为了保证一级索引项在有限的快速存储器空间中存储更多的记录,可以根据索引中存储记录的数量动态调整采样长度。所述一级索引项包括采样特征值数量、采样特征值以及该一级索引项指向的慢速存储器地址。其中,步骤201可以包括208、根据所述待查询的一级索引项中记录的采样特征值数量获取所述采样特征值对应的采样长度。在本实施例中,由于一级索引项的存储空间是有限的,一级索引项中的采样特征值对应的采样长度是根据一级索引项中记录的采样特征值数量而动态调整的。当一级索引项中仅保存有一个采样特征值时,可以不等于该采样特征值对应的完整特征值进行采样, 完整地保存在一级索引项中;当一级索引项中记录的采样特征值数量较少时,采样长度可以相应的增大;当一级索引项中记录的采样特征值数量较多时,采样长度可以相应的减小。 例如,待查询的一级索引项中采样特征值对应的采样长度的计算公式可以为d = q/c,其中 d为采样长度,q为一个完整特征值的长度,c为该一级索引项中记录的采样特征值数量。按照一级索引项中的采样特征值所采用的采样算法,以采样长度d对输入完整特征值进行采样,即可得到与一级索引项中的采样特征值长度和采样算法均相同的输入采样特征值。209、根据所述采样长度和预先设置的采样算法对输入完整特征值进行采样得到输入采样特征值。在本实施例中,根据待查询的一级索引项中采样特征值对应的采样长度和预先设置的采样算法对输入完整特征值进行采样,得到与一级索引项中的采样特征值长度和采样算法均相同的输入采样特征值。进一步的,由于一级索引表中的采样特征值按照匹配分别存储在对于的一级索引项中,为了快速定位待查询的一级索引项,从完整特征值中划分预定的若干位作为匹配位。 在步骤201之前,还可以包括210、根据预先设置的匹配位获取算法获取与所述输入完整特征值对应的输入匹配位。在本实施例中,相同的匹配位对应一个一级索引项。根据完整特征值的匹配位,将匹配为相同的完整特征值存储在对应的完整特征值集合中,因此所述完整特征值集合中所有完整特征值的匹配位相同。同时,匹配位相同的完整特征值对应的采样特征值也存储的同一个一级索引项中,所述一级索引项根据所述匹配位存储在所述一级索引表中。例如,匹配位获取算法可以为获取完整特征值的前两位作为匹配位。211、根据所述输入匹配位获取待查询的一级索引项。其中,根据输入匹配位可以计算输入完整特征值应查询的一级索引项在一级索引表中的排列位置。例如,如图3(c)所示为一个输入完整特征值,其中前6位为输入匹配位, 根据输入匹配位可以计算输入完整特征值对应的待查询的一级索引项为一级索引表中的第观个一级索引项。由于一级索引项的长度L为预先根据快速存储器大小和完整特征值长度划分的,因此从一级索引表的起始位置向后移动^L的长度便可以快速定位待查询的一级索引项所在位置,从而获取待查询的一级索引项。进一步的,为了快速辨别待查询的一级索引项中是否为空,如图3(b)所示,可以在所述一级索引项的标志位中添加一个非空标记,所述非空标记占标志位中的一位。在步骤211之后,还包括212、根据所述非空标记确定所述待查询的一级索引项是否为空;若确定所述待查询的一级索引项为空,则执行步骤206 ;若确定所述待查询的一级索引项非空,则执行步骤 213。其中,若确定所述待查询的一级索引项为空,表示输入完整特征值对应的待查询的一级索引项中没有记录,可以判定输入完整特征值不在索引中,即本次查询的数据内容不在索引中。例如,如图3(b)所示,若非空标记为0,表示该一级索引项中没有记录,输入完整特征值不在索引中;若非空标记为1表示该一级索引项中有记录,需要进一步对输入完整特征值进行匹配才可确定输入完整特征值是否在索引中。进一步的,为了快速辨别是否需要对输入完整特征值进行采样,如图3(b)所示, 可以在所述一级索引项的标识位中添加一个采样标记,所述非空标记占标志位中的一位。 在步骤212之后,还可以包括213、根据所述采样标记确定所述待查询的一级索引项记录的采样特征值是否为完整特征值;若所述待查询的一级索引项记录的采样特征值是完整特征值,则执行步骤 214 ;若所述待查询的一级索引项记录的采样特征值不是完整特征值,则执行步骤208。需要说明的是,本发明实施例中提到的采样特征值可以为完整特征值,也可以为对完整特征值进行采样后得到的采样特征值。在本实施例中,一级索引项的容量可以存储一个完整特征值,因此当该一级索引项中只有一个采样特征值时,该采样特征值为未经采样的完整特征值,该一级索引项末尾的慢速存储器地址信息部分存储的是该未经采样的完整特征值对应的数据内容的存储地址。若该一级索引项中插入更多的采样特征值,则需要根据该一级索引中记录的采样特征值数量调整采样长度对完整特征值进行采样,并将该一级索引项末尾的慢速存储器地址信息部分中的地址修改为对应的二级索引项在慢速存储器中的存储地址。其中,若判断所述待查询的一级索引项记录的采样特征值是完整特征值,则可以不获取所述待查询的一级索引项中记录的采样特征值数量,可以确定待查询的一级索引项中只存储有一个采样特征值,且为完整特征值,则不用对输入完整特征值进行采样,进一步执行步骤214。若判断所述待查询的一级索引项记录的采样特征值是完整特征值,则可以获取标志位中的记录的采样特征值数量,从而进一步执行步骤208计算得到待查询的一级索引项中的当前采样长度。例如,如图3(b)所示,若采样标记为0,表示该一级索引项中存储的是一个完整特征值,不用对输入完整特征值进行采样;若非空标记为1,表示该一级索引项中记录的是对完整特征值进行采样后得到的采样特征值,需要进一步获取该一级索引项中记录的采样特征值数量计算采样长度,并对输入完整特征值进行采样。214、将所述输入完整特征值与所述一级索引项中记录的完整特征值进行匹配以根据所述完整特征值对应的数据内容的存储地址获取数据内容。在本实施例中,若一级索引项中只有一个记录,则可以直接将完整特征值存储在该一级索引项中。当待查询的一级索引项中记录的采样特征值为完整特征值时,可以直接将输入完整特征值与待查询的一级索引项中的完整特征值进行匹配。若输入完整特征值与所述一级索引项中记录的完整特征值匹配,则可以根据一级索引项的慢速存储器地址信息中记录的数据内容的存储地址获取所述完整特征值对应的数据内容。若输入完整特征值与所述一级索引项中记录的完整特征值不匹配,可以判定输入完整特征值不在索引中,即本次查询的数据不在索引中。进一步的,如图5所示,可以将待删除的输入关键字对应的输入完整特征值和输入采样特征值从分别从二级索引项和一级索引项中删除,并且保证一级索引项能够根据删除记录后的记录数量动态调整采样长度。相应的,所述输入完整特征值对应于待删除的输入关键字,在步骤204判断所述输入完整特征值与所述完整特征值集合中的一个完整特征值匹配之后,还可以包括215、删除所述完整特征值集合中匹配的完整特征值。其中,删除所述完整特征值集合中匹配的完整特征值的方法可以为从慢速存储器中读取与输入完整特征值的匹配位对应的完整特征值集合,将匹配的完整特征值从所在的完整特征值集合中删除,删除读取到的完整特征值集合中匹配的完整特征值后,将重新生成的完整特征值集合重新存储到二级索引表中,得到新的二级索引项,并将该二级索引项的LBA地址存储在对应的一级索引项的地址信息中。其中,当从二级索引表中删除对应的二级索引项后,存储该二级索引项的位置便留下一个空白段。因此可以将当前空白段的地址写入上一个空白段的末尾,若当前空白段为二级索引表的第一个空白段,则将该空白段的地址写入二级索引表的文件头中。若该二级索引表中没有空白段,则可以将文件头中存储的空白段地址设为0。当将重新生成的完整特征值集合重新存储到二级索引表中时,可以将该完整特征值集合存储在二级索引表的第一个空白段中,也可以追加在二级索引表的末尾。特别的,若删除完整特征值集合中的一个完整特征值后,集合中仅剩下一个完整特征值,则可以删除对应的二级索引项,将仅剩的一个完整特征值保存在一级索引项中,并将该完整特征值对应的数据内容的存储地址保存在一级索引项的地址信息中。进一步的,如图6所示,可以将待插入的输入关键字对应的输入完整特征值和输入采样特征值从分别插入到二级索引项和一级索引项中,并且保证一级索引项能够根据插入记录后的记录数量动态调整采样长度。216、删除所述待查询的一级索引项中匹配的采样特征值,根据删除所述匹配的采样特征值之后所述待查询的一级索引项中记录的采样特征值数量重新获取采样长度,并根据重新获取的采样长度和预先设置的采样算法对所述待查询的一级索引项中记录的采样特征值对应的完整特征值进行采样,重新生成一级索引项。其中,当判定输入完整特征值在索引中时,将该匹配的采样特征从一级索引中删除。删除一个采样特征值后,该一级索引项的标志位中的采样特征值数量相应的减1。并相应的删除二级索引中与输入完整特征值匹配的完整特征值,根据减少后的采样特征值数量对对应的完整特征值集合中的完整特征值进行采样,并保存在一级索引项中。相应的,所述输入完整特征值对应于待插入的输入关键字,在步骤202判断所述输入采样特征值与所述待查询的一级索引项中记录的采样特征值均不匹配之后,还可以包括217、将所述输入完整特征值插入所述所述待查询的一级索引项对应的完整特征
值集合中。其中,将所述输入完整特征值插入所述完整特征值集合中的方法可以为从慢速存储器中读取与输入完整特征值的匹配位对应的完整特征值集合,将输入完整特征值添加至读取到的完整特征值集合中,并将重新生成的完整特征值集合重新存储到二级索引表中,得到新的二级索引项,并将该二级索引项的LBA地址存储在对应的一级索引项的地址信息中。向重新生成的完整特征值集合插入到二级索引表中的方法可以为根据文件头中描述的第一个空白段的地址,将该完整特征值集合存储在第一个空白段中,并将下一个空白段的地址写入二级索引表的文件头中,若没有下一个空白段,则将文件头中用于存储空白段地址的地址信息设为0。可以理解的是,当向二级索引表中插入二级索引项时,若文件头中的存储的空白段地址为0,表示该二级索引表中没有空白段,可以将二级索引项追加在二级索引表的末尾。特别的,若待插入的输入完整特征值的匹配位对应的一级索引项中原本只存储有一个采样特征值,该采样特征值为完整特征值形式,并且没有对应的二级索引项。插入完整特征值的方法可以为在判断输入采样特征值与一级索引项中的采样特征值不匹配后, 对两个完整特征值进行50%的采样保存在一级索引项中,并将对应的两个完整特征值组成的完整特征值集合存储在二级索引表中,生成对应的二级索引项,并将该二级索引项的LBA 地址存储在对应的一级索引项中。218、根据插入所述输入采样特征值之后所述待查询的一级索引项中记录的采样特征值数量重新获取采样长度,并根据重新获取的采样长度和预先设置的采样算法对所述输入完整特征值和所述待查询的一级索引项中记录的采样特征值对应的完整特征值进行采样,重新生成一级索引项。其中,当判定输入完整特征值对应的采样特征值不在一级索引中时,可以判定待插入的关键字对应的数据内容是新的内容。首先将待查询的一级索引项中记录的采样特征值数量加1,根据增加后的采样特征值数量重新计算采样长度,对输入完整特征值进行采样,同时也对该一级索引项对应的二级索引项中的完整特征值进行重新采样,存储在该一级索引项中。219、判定插入内容已存在索引中。其中,若输入完整特征值与一级索引项或二级索引项中的任一完整特征值匹配, 可以判定输入完整特征值在索弓丨中,即本次插入的输入关键字对应的数据内容已存在于索引中。进一步的,如图7所示,为了保证参与采样或匹配的输入关键字为完整特征值形式,在步骤201之前,还可以包括220、判断输入关键字是否为完整特征值形式;若所述输入关键字不为完整特征值形式,则执行步骤221 ;若所述输入关键字为完整特征值形式,则执行步骤201。其中,若输入关键字已经是完整特征值形式,则可以将输入关键字作为输入完整特征值进行采样或匹配。若输入关键字不是完整特征值形式,则可以将输入关键字转换成为完整特征值形式。221、根据预定的计算函数将输入关键字计算得到固定长度的输入完整特征值。在本实施例中,预定的计算函数可以为安全哈希算法(Secure Hash Algorithm, SHA)等计算函数,因为随机性较高,既可以保证一级索引表中各个一级索引项中记录的采样特征值数量相近,也可以保证不同关键字计算得到的完整特征值不会冲突。其中,不同计算函数计算得出的完整特征值长度不同。例如,若预定的计算函数为SHA-1,将不同长度的输入关键字经SHA-I计算后得到的输入完整特征值的长度为160位。若预定的计算函数为 SHA-256,将不同长度的输入关键字经SHA-256计算后得到的输入完整特征值的长度为256 位。因此,在一个检索系统中,包括输入关键字的转换、一级索引表和二级索引表的生成均采用统一的计算函数。本发明实施例的方法可以由处理器或专用集成电路执行。本发明实施例提供的数据检索方法,根据输入完整特征值在快速存储器中查询一级索引项中记录的采样特征值,并在匹配成功的情况下,直接从慢速存储器中获取对应的数据内容,或者再从慢速存储器的二级索引项中获取对应的完整特征值集合进行匹配,与现有技术中通过从慢速存储器逐一读取索引项进行匹配的技术相比,既可以在有限的快速存储器中实现大量记录的查询,又可以降低数据检索延迟,提高数据检索效率。实施例3本发明实施例提供了一种数据检索装置,如图8所示,包括采样单元301、一级检索单元302、二级检索单元303。采样单元301,用于根据待查询的一级索引项中记录的采样特征值对应的采样长度以及预先设置的采样算法对输入完整特征值进行采样得到输入采样特征值,其中所述一级索引项保存在快速存储器的一级索引表中。—级检索单元302,用于在所述输入采样特征值与所述待查询的一级索引项中记录的任一采样特征值匹配时,根据所述一级索引项中记录的慢速存储器地址从慢速存储器中读取对应的二级索引项,所述二级索引项包括完整特征值集合。二级检索单元303,用于在所述输入完整特征值与所述完整特征值集合中的一个完整特征值匹配时,根据所述完整特征值对应的数据内容的存储地址获取数据内容。进一步的,所述一级索引项包括采样特征值数量、采样特征值以及该一级索引项指向的慢速存储器地址,如图9所示,所述采样单元301包括计算模块3011、采样模块 3012。计算模块3011,用于根据所述待查询的一级索引项中记录的采样特征值数量获取所述采样特征值对应的采样长度。采样模块3012,用于根据所述采样长度和预先设置的采样算法对输入采样完整特征值进行采样得到输入采样特征值。进一步的,如图10所示,所述采样单元301还包括判定模块3013。判定模块3013,用于在所述采样特征值数量为零时,判定所述待查询的一级索引项为空,查询失败。进一步的,所述一级索引项中所有采样特征值对应的匹配位相同,所述一级索引项对应的完整特征值集合中所有完整特征值的匹配位相同,所述一级索引项根据所述匹配位存储在所述一级索引表中,如图11所示,该数据检索装置还包括匹配位获取单元304、 一级索引项获取单元305。匹配位获取单元304,用于在所述采样单元301根据待查询的一级索引项中记录的采样特征值对应的采样长度以及预先设置的采样算法对输入完整特征值进行采样得到输入采样特征值之前,根据预先设置的匹配位获取算法获取与所述输入完整特征值对应的输入匹配位。一级索引项获取单元305,用于根据所述匹配位获取单元304获取到的所述输入匹配位获取待查询的一级索引项。进一步的,所述一级索引项还包括非空标记,如图12所示,该数据检索装置还包括第一判定单元306。第一判定单元306,用于在所述一级索引项获取单元305根据所述输入匹配位获取待查询的一级索引项之后,在根据所述非空标记确定所述待查询的一级索引项为空时, 判定检索失败。所述采样单元301,还用于在根据所述非空标记确定所述待查询的一级索引项非空时,执行输入完整特征值的采样步骤或将输入完整特征值与一级索引项中的采样特征值匹配。进一步的,所述一级索引项还包括采样标记,当所述一级索引项中仅保存有一个采样特征值时,该采样特征值为完整特征值形式,并且在所述一级索引项中存储有所述采样特征值对应的数据内容的存储地址。如图13所示,该数据检索装置还包括第二判定单元 307。第二判定单元307,用于在所述一级索引项获取单元305根据所述输入匹配位获取待查询的一级索引项之后,在根据所述采样标记确定所述待查询的一级索引项记录的采样特征值为完整特征值时,将所述输入完整特征值与所述一级索引项中记录的完整特征值进行匹配以根据所述完整特征值对应的数据内容的存储地址获取数据内容。所述采样单元301,还用于在根据所述采样标记确定所述待查询的一级索引项记录的采样特征值不是完整特征值时,执行输入完整特征值的采样步骤。进一步的,所述输入完整特征值对应于待删除的输入关键字,如图14所示,该数据检索装置还包括一级索引删除单元308、二级索引删除单元309。一级索引删除单元308,用于在所述一级检索单元302确定所述输入采样特征值与所述待查询的一级索引项中记录的任一采样特征值匹配之后,删除所述待查询的一级索引项中匹配的采样特征值,根据删除所述匹配的采样特征值之后所述待查询的一级索引项中记录的采样特征值数量重新获取采样长度,并根据重新获取的采样长度和预先设置的采样算法对所述待查询的一级索引项中记录的采样特征值对应的完整特征值进行采样,重新生成一级索引项。二级索引删除单元309,用于在所述二级检索单元303确定所述输入完整特征值与所述完整特征值集合中的一个完整特征值匹配之后,删除所述完整特征值集合中匹配的完整特征值。进一步的,所述输入完整特征值对应于待插入的输入关键字,如图15所示,该数据检索装置还包括一级索引插入单元310、二级索引插入单元311。一级索引插入单元310,用于在所述一级检索单元302确定所述输入采样特征值与所述待查询的一级索引项中记录的采样特征值均不匹配之后,根据插入所述输入采样特征值之后所述待查询的一级索引项中记录的采样特征值数量重新获取采样长度,并根据重新获取的采样长度和预先设置的采样算法对所述输入完整特征值和所述待查询的一级索引项中记录的采样特征值对应的完整特征值进行采样,重新生成一级索引项。 二级索引插入单元311,用于将所述输入完整特征值插入所述完整特征值集合中。进一步的,如图16所示,该数据检索装置还包括判断单元312、计算单元313。判断单元312,用于在所述采样单元301根据待查询的一级索引项中记录的采样特征值对应的采样长度以及预先设置的采样算法对输入完整特征值进行采样得到输入采样特征值之前,判断输入关键字是否为完整特征值形式。计算单元313,用于在所述判断单元312判断所述输入关键字不为完整特征值形式时,根据预定的计算函数将输入关键字计算得到固定长度的输入完整特征值。需要说明的是,本发明实施例中各功能模块的具体描述可以参考实施例1和实施例2中的对应内容,本发明实施例这里将不再一一赘述。本发明实施例的数据检索装置可以是处理器或专用集成电路。本发明实施例提供的数据检索装置,根据输入完整特征值在快速存储器中查询一级索引项中记录的采样特征值,并在匹配成功的情况下,直接从慢速存储器中获取对应的数据内容,或者再从慢速存储器的二级索引项中获取对应的完整特征值集合进行匹配,与现有技术中通过从慢速存储器逐一读取索引项进行匹配的技术相比,既可以在有限的快速存储器中实现大量记录的查询,又可以降低数据检索延迟,提高数据检索效率。通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机, 服务器,或者网络设备等)执行本发明各个实施例所述的方法。 以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
权利要求
1.一种数据检索方法,其特征在于,包括根据待查询的一级索引项中记录的采样特征值对应的采样长度以及预先设置的采样算法对输入完整特征值进行采样得到输入采样特征值,其中所述一级索引项保存在快速存储器的一级索引表中;若所述输入采样特征值与所述待查询的一级索引项中记录的任一采样特征值匹配,则根据所述一级索引项中记录的慢速存储器地址从慢速存储器中读取对应的二级索引项,所述二级索引项包括完整特征值集合;若所述输入完整特征值与所述完整特征值集合中的一个完整特征值匹配,则根据所述完整特征值对应的数据内容的存储地址获取数据内容。
2.根据权利要求1所述的数据检索方法,其特征在于,所述一级索引项包括采样特征值数量、采样特征值以及该一级索引项指向的慢速存储器地址,所述根据待查询的一级索引项中记录的采样特征值的采样长度以及预先设置的采样算法对输入完整特征值进行采样得到输入采样特征值,包括根据所述待查询的一级索引项中记录的采样特征值数量获取所述采样特征值对应的采样长度;根据所述采样长度和预先设置的采样算法对输入采样完整特征值进行采样得到输入采样特征值。
3.根据权利要求2所述的数据检索方法,其特征在于,所述根据待查询的一级索引项中记录的采样特征值的采样长度以及预先设置的采样算法对输入完整特征值进行采样得到输入采样特征值,还包括若所述采样特征值数量为零,则所述待查询的一级索引项为空,查询失败。
4.根据权利要求3所述的数据检索方法,其特征在于,所述一级索引项中所有采样特征值对应的匹配位相同,所述一级索引项对应的完整特征值集合中所有完整特征值的匹配位相同,所述一级索引项根据所述匹配位存储在所述一级索引表中,在所述根据待查询的一级索引项中记录的采样特征值对应的采样长度以及预先设置的采样算法对输入完整特征值进行采样得到输入采样特征值之前,还包括根据预先设置的匹配位获取算法获取与所述输入完整特征值对应的输入匹配位;根据所述输入匹配位获取待查询的一级索引项。
5.根据权利要求2所述的数据检索方法,其特征在于,所述一级索引项还包括非空标记,所述方法,在所述根据所述输入匹配位获取待查询的一级索引项之后,还包括若根据所述非空标记确定所述待查询的一级索引项为空,检索失败;若根据所述非空标记确定所述待查询的一级索引项非空,执行输入完整特征值的采样步骤或将输入完整特征值与一级索引项中的采样特征值匹配。
6.根据权利要求2所述的数据检索方法,其特征在于,所述一级索引项还包括采样标记,当所述一级索引项中仅保存有一个采样特征值时,该采样特征值为完整特征值形式,并且在所述一级索引项中存储有所述采样特征值对应的数据内容的存储地址;在所述根据所述输入匹配位获取待查询的一级索引项之后,该方法还包括若根据所述采样标记确定所述待查询的一级索引项记录的采样特征值为完整特征值, 将所述输入完整特征值与所述一级索引项中记录的完整特征值进行匹配以根据所述完整特征值对应的数据内容的存储地址获取数据内容;若根据所述采样标记确定所述待查询的一级索引项记录的采样特征值不是完整特征值,执行输入完整特征值的采样步骤。
7.根据权利要求6所述的数据检索方法,其特征在于,所述输入完整特征值对应于待删除的输入关键字,在所述输入完整特征值与所述完整特征值集合中的一个完整特征值匹配之后,还包括删除所述完整特征值集合中匹配的完整特征值;删除所述待查询的一级索引项中匹配的采样特征值,根据删除所述匹配的采样特征值之后所述待查询的一级索引项中记录的采样特征值数量重新获取采样长度,并根据重新获取的采样长度和预先设置的采样算法对所述待查询的一级索引项中记录的采样特征值对应的完整特征值进行采样,重新生成一级索引项。
8.根据权利要求7所述的数据检索方法,其特征在于,所述输入完整特征值对应于待插入的输入关键字,在所述输入采样特征值与所述待查询的一级索引项中记录的采样特征值均不匹配之后,还包括将所述输入完整特征值插入所述所述待查询的一级索引项对应的完整特征值集合中;根据插入所述输入采样特征值之后所述待查询的一级索引项中记录的采样特征值数量重新获取采样长度,并根据重新获取的采样长度和预先设置的采样算法对所述输入完整特征值和所述待查询的一级索引项中记录的采样特征值对应的完整特征值进行采样,重新生成一级索引项。
9.根据权利要求1-8任一项所述的数据检索方法,其特征在于,在所述根据待查询的一级索引项中记录的采样特征值对应的采样长度以及预先设置的采样算法对输入完整特征值进行采样得到输入采样特征值之前,还包括判断输入关键字是否为完整特征值形式;若所述输入关键字不为完整特征值形式,则根据预定的计算函数将输入关键字计算得到固定长度的输入完整特征值。
10.一种数据检索装置,其特征在于,包括采样单元,用于根据待查询的一级索引项中记录的采样特征值对应的采样长度以及预先设置的采样算法对输入完整特征值进行采样得到输入采样特征值,其中所述一级索引项保存在快速存储器的一级索引表中;一级检索单元,用于在所述输入采样特征值与所述待查询的一级索引项中记录的任一采样特征值匹配时,根据所述一级索引项中记录的慢速存储器地址从慢速存储器中读取对应的二级索引项,所述二级索引项包括完整特征值集合;二级检索单元,用于在所述输入完整特征值与所述完整特征值集合中的一个完整特征值匹配时,根据所述完整特征值对应的数据内容的存储地址获取数据内容。
11.根据权利要求10所述的数据检索装置,其特征在于,所述一级索引项包括采样特征值数量、采样特征值以及该一级索引项指向的慢速存储器地址,所述采样单元包括计算模块,用于根据所述待查询的一级索引项中记录的采样特征值数量获取所述采样特征值对应的采样长度;采样模块,用于根据所述采样长度和预先设置的采样算法对输入采样完整特征值进行采样得到输入采样特征值。
12.根据权利要求11所述的数据检索装置,其特征在于,所述采样单元还包括判定模块,用于在所述采样特征值数量为零时,判定所述待查询的一级索引项为空,查询失败。
13.根据权利要求12所述的数据检索装置,其特征在于,所述一级索引项中所有采样特征值对应的匹配位相同,所述一级索引项对应的完整特征值集合中所有完整特征值的匹配位相同,所述一级索引项根据所述匹配位存储在所述一级索引表中,该数据检索装置还包括匹配位获取单元,用于在所述采样单元根据待查询的一级索引项中记录的采样特征值对应的采样长度以及预先设置的采样算法对输入完整特征值进行采样得到输入采样特征值之前,根据预先设置的匹配位获取算法获取与所述输入完整特征值对应的输入匹配位;一级索引项获取单元,用于根据所述匹配位获取单元获取到的所述输入匹配位获取待查询的一级索引项。
14.根据权利要求12所述的数据检索装置,其特征在于,所述一级索引项还包括非空标记,该数据检索装置还包括第一判定单元,用于在所述一级索引项获取单元根据所述输入匹配位获取待查询的一级索引项之后,在根据所述非空标记确定所述待查询的一级索引项为空时,判定检索失败;所述采样单元,还用于在根据所述非空标记确定所述待查询的一级索引项非空时,执行输入完整特征值的采样步骤或将输入完整特征值与一级索引项中的采样特征值匹配。
15.根据权利要求12所述的数据检索装置,其特征在于,所述一级索引项还包括采样标记,当所述一级索引项中仅保存有一个采样特征值时,该采样特征值为完整特征值形式, 并且在所述一级索引项中存储有所述采样特征值对应的数据内容的存储地址;该数据检索装置还包括第二判定单元,用于在所述一级索引项获取单元根据所述输入匹配位获取待查询的一级索引项之后,在根据所述采样标记确定所述待查询的一级索引项记录的采样特征值为完整特征值时,将所述输入完整特征值与所述一级索引项中记录的完整特征值进行匹配以根据所述完整特征值对应的数据内容的存储地址获取数据内容;所述采样单元,还用于在根据所述采样标记确定所述待查询的一级索引项记录的采样特征值不是完整特征值时,执行输入完整特征值的采样步骤。
16.根据权利要求10所述的数据检索装置,其特征在于,所述输入完整特征值对应于待删除的输入关键字,该数据检索装置还包括一级索引删除单元,用于在所述一级检索单元确定所述输入采样特征值与所述待查询的一级索引项中记录的任一采样特征值匹配之后,删除所述待查询的一级索引项中匹配的采样特征值,根据删除所述匹配的采样特征值之后所述待查询的一级索引项中记录的采样特征值数量重新获取采样长度,并根据重新获取的采样长度和预先设置的采样算法对所述待查询的一级索引项中记录的采样特征值对应的完整特征值进行采样,重新生成一级索引项;二级索引删除单元,用于在所述二级检索单元确定所述输入完整特征值与所述完整特征值集合中的一个完整特征值匹配之后,删除所述完整特征值集合中匹配的完整特征值。
17.根据权利要求10所述的数据检索装置,其特征在于,所述输入完整特征值对应于待插入的输入关键字,该数据检索装置还包括一级索引插入单元,用于在所述一级检索单元确定所述输入采样特征值与所述待查询的一级索引项中记录的采样特征值均不匹配之后,根据插入所述输入采样特征值之后所述待查询的一级索引项中记录的采样特征值数量重新获取采样长度,并根据重新获取的采样长度和预先设置的采样算法对所述输入完整特征值和所述待查询的一级索引项中记录的采样特征值对应的完整特征值进行采样,重新生成一级索引项;二级索引插入单元,用于将所述输入完整特征值插入所述完整特征值集合中。
18.根据权利要求10-17任一项所述的数据检索装置,其特征在于,还包括判断单元,用于在所述采样单元根据待查询的一级索引项中记录的采样特征值对应的采样长度以及预先设置的采样算法对输入完整特征值进行采样得到输入采样特征值之前, 判断输入关键字是否为完整特征值形式;计算单元,用于在所述判断单元判断所述输入关键字不为完整特征值形式时,根据预定的计算函数将输入关键字计算得到固定长度的输入完整特征值。
全文摘要
本发明实施例公开了一种数据检索方法及装置,涉及计算机技术领域,能在有限的快速存储器中实现大量记录的查询并提高数据检索效率。本发明的方法包括根据待查询的一级索引项中记录的采样特征值对应的采样长度以及预设的采样算法对输入完整特征值进行采样得到输入采样特征值,一级索引项保存在快速存储器的一级索引表中;若输入采样特征值与待查询的一级索引项中记录的任一采样特征值匹配,则根据一级索引项中记录的慢速存储器地址从慢速存储器中读取对应的二级索引项,二级索引项包括完整特征值集合;若输入完整特征值与完整特征值集合中的一个完整特征值匹配,则根据完整特征值对应的数据内容的存储地址获取数据内容。
文档编号G06F17/30GK102346783SQ20111035207
公开日2012年2月8日 申请日期2011年11月9日 优先权日2011年11月9日
发明者余宏亮, 孙竞, 戴芬 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1