CN110275864A - 索引建立方法、数据查询方法及计算设备 - Google Patents
索引建立方法、数据查询方法及计算设备 Download PDFInfo
- Publication number
- CN110275864A CN110275864A CN201910500505.7A CN201910500505A CN110275864A CN 110275864 A CN110275864 A CN 110275864A CN 201910500505 A CN201910500505 A CN 201910500505A CN 110275864 A CN110275864 A CN 110275864A
- Authority
- CN
- China
- Prior art keywords
- data object
- catalogue
- index
- directory
- file
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
Abstract
本发明公开了一种索引建立方法,在计算设备中执行,适于为文件系统建立索引,文件系统包括多个数据对象,数据对象包括目录和文件,该方法包括:根据多个数据对象的层级关系,建立文件系统的线性索引,线性索引包括顺序存储的各个层级的数据对象的名称和索引信息,其中,任一目录的索引信息包括开始标签,开始标签中存储该目录下的第一个子数据对象在线性索引中的位置信息;任一目录下的最后一个子数据对象的索引信息包括结束标签,结束标签中存储该目录在线性索引中的位置信息。本发明一并公开了相应的数据查找方法及计算设备。
Description
技术领域
本发明涉及数据存储及查询技术领域,尤其涉及一种索引建立方法、数据查询方法及计算设备。
背景技术
基于文件名来查找文件是文件系统(File System,简称FS)的一个常见功能。目前,文件的查找方案主要有以下两种:
1、根据用户输入的文件名和指定的目录,实时递归遍历指定目录下的子目录与文件,分别判断各个文件与文件名是否匹配。这种方法的查找结果准确,但是耗时较长。
2、定时遍历整个文件系统,为各子目录及文件建立索引,通过已建立的索引来查找文件。这种方法可以加快查找速度,但索引占据的存储空间较大,建立索引的耗时较长,难以保证文件查询结果的实时性。
发明内容
为此,本发明提供一种索引建立方法、数据查询方法及计算设备,以力图解决或至少缓解上面存在的问题。
根据本发明的第一个方面,提供一种索引建立方法,在计算设备中执行,适于为文件系统建立索引,所述文件系统包括多个数据对象,所述多个数据对象包括目录和文件,所述方法包括:根据所述多个数据对象的层级关系,建立所述文件系统的线性索引,所述线性索引包括顺序存储的各个层级的数据对象的名称和索引信息,其中,任一目录的索引信息包括开始标签,所述开始标签中存储该目录下的第一个子数据对象在所述线性索引中的位置信息;任一目录下的最后一个子数据对象的索引信息包括结束标签,所述结束标签中存储该目录在所述线性索引中的位置信息。
根据本发明的第二个方面,提供一种数据查询方法,在计算设备中执行,所述方法适于在文件系统中查找名称中包括指定查询词的数据对象,所述文件系统按照前述索引建立方法建立线性索引,所述方法包括:获取查询词;在所述线性索引中查找名称中包括所述查询词的目标数据对象;根据所述线性索引中位于所述目标数据对象之后的第一个结束标签来确定所述目标数据对象所属的目标目录;根据所述目标目录来确定所述目标数据对象的存储路径,将所述存储路径返回给用户。
根据本发明的第三个方面,提供一种计算设备,包括:至少一个处理器;和存储有程序指令的存储器,当所述程序指令被所述处理器读取并执行时,使得所述计算设备执行如上所述的索引建立方法或数据查询方法。
根据本发明的第四个方面,提供一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如上所述的索引建立方法或数据查询方法。
本发明的索引建立方案,根据数据对象之间的层级关系,为文件系统建立了线性索引,线性索引减少了索引文件占用的存储空间,实现了索引文件的小型化。本发明的数据查询方案基于已建立的线性索引进行数据查询,可以大大提高数据对象的查询速度,保证了数据查询的实时性,实现了高效的数据查询。
进一步地,本发明的技术方案还建立了数据对象名称的倒排索引,通过倒排索引来确定名称中包括指定查询词的目标数据对象,根据线性索引来确定目标数据对象的存储路径,进一步提高了查询速度。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的计算设备100的示意图;
图2示出了根据本发明一个实施例的索引建立方法200的流程图;
图3示出了根据本发明一个实施例的文件系统结构的示意图;
图4示出了图3所示的文件系统结构所对应的线性索引的示意图;
图5示出了根据本发明另一个实施例的索引建立方法200的流程图;
图6示出了根据本发明一个实施例的采用哈希链表来存储倒排索引的示意图;
图7示出了根据本发明一个实施例的索引更新及查询过程的示意图;
图8示出了根据本发明一个实施例的数据查询方法800的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
针对现有技术的缺点,本发明提供一种索引建立方案和数据查询方案。本发明的索引建立方案根据数据对象之间的层级关系,为文件系统建立了线性索引,该线性索引减少了索引文件占用的存储空间,实现了索引文件的小型化。本发明的数据查询方案基于已建立的线性索引进行数据查询,可以大大提高数据对象的查询速度,保证了数据查询的实时性,实现了高效的数据查询。
本发明的索引建立方法和数据查询方法在计算设备中执行。计算设备可以是任意具有存储和计算能力的设备,其例如可以是桌面电脑、笔记本电脑等个人配置的计算机,也可以是工作站、服务器等硬件配置较高的计算机,还可以是手机、平板电脑、智能可穿戴设备等移动终端,但不限于此。
图1示出了根据本发明一个实施例的计算设备100的示意图。需要说明的是,图1所示的计算设备100仅为一个示例,在实践中,用于实施本发明的索引建立方法及数据查询方法的计算设备可以是任意型号的设备,其硬件配置情况可以与图1所示的计算设备100相同,也可以不同。实践中用于实施本发明的索引建立方法及数据查询方法的计算设备可以对图1所示的计算设备100的硬件组件进行增加或删减,本发明对计算设备的具体硬件配置情况不做限制。
如图1所示,在基本的配置102中,计算设备100典型地包括系统存储器106和一个或者多个处理器104。存储器总线108可以用于在处理器104和系统存储器106之间的通信。
取决于期望的配置,处理器104可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器104可以包括诸如一级高速缓存110和二级高速缓存112之类的一个或者多个级别的高速缓存、处理器核心114和寄存器116。示例的处理器核心114可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器118可以与处理器104一起使用,或者在一些实现中,存储器控制器118可以是处理器104的一个内部部分。
取决于期望的配置,系统存储器106可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器106可以包括操作系统120、一个或者多个程序122以及程序数据124。在一些实施方式中,程序122可以布置为在操作系统上由一个或多个处理器104利用程序数据124执行指令。
计算设备100还可以包括有助于从各种接口设备(例如,输出设备142、外设接口144和通信设备146)到基本配置102经由总线/接口控制器130的通信的接口总线140。示例的输出设备142包括图形处理单元148和音频处理单元150。它们可以被配置为有助于经由一个或者多个A/V端口152与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口144可以包括串行接口控制器154和并行接口控制器156,它们可以被配置为有助于经由一个或者多个I/O端口158和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备146可以包括网络控制器160,其可以被布置为便于经由一个或者多个通信端口164与一个或者多个其他计算设备162通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
在根据本发明的计算设备100中,应用122包括用于执行本发明的索引建立方法200和数据查询方法800的指令,该指令可以指示处理器104执行本发明的索引建立方法200和数据查询方法800,为文件系统建立线性索引,并根据线性索引,实现高效的数据查询。
图2示出了根据本发明一个实施例的索引建立方法200的流程图。方法200在计算设备(例如前述计算设备100)中执行,用于为计算设备中的文件系统建立线性索引。
文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法。换言之,文件系统为操作系统中负责管理和存储文件信息的软件。文件系统通常采用层级结构(或称为树状结构)来存储文件,文件系统中的每一个层级包括一个或多个节点,节点可以是目录或文件。文件可以是任意类型,即,文件的扩展名(或称后缀名)可以是任意值,例如.txt、.doc、.xls等,本发明对文件系统中所存储的文件的类型不做限制。为叙述方便,在本发明的实施例中,将目录和文件统称为数据对象,即,文件系统包括多个数据对象,数据对象包括目录和文件。在一些实施例中,数据对象还包括链接(例如软链接、硬链接),其用于实现文件的共享。由于链接是源目录或源文件的映射,因此,在本发明的实施例中,着重描述目录和文件两种类型的数据对象的索引建立和数据查询过程。本发明对链接型数据对象的索引建立和数据查询过程未作详细说明,本领域技术人员可以参照目录及文件的索引建立及数据查询过程类推应用于链接型数据对象。
如图2所示,方法200始于步骤S210。
在步骤S210中,根据多个数据对象的层级关系,建立文件系统的线性索引,线性索引包括顺序存储的各个层级的数据对象的名称和索引信息。其中,任一目录的索引信息包括开始标签,开始标签中存储该目录下的第一个子数据对象在线性索引中的位置信息;任一目录下的最后一个子数据对象的索引信息包括结束标签,结束标签中存储该目录在线性索引中的位置信息。
为了建立文件系统的线性索引,需要逐级遍历树状文件系统。具体地,从第一层级(例如根目录)开始,依次遍历每一层级的数据对象,将各数据对象的名称和索引信息连续地存储在一存储区域中。
在本发明的实施例中,文件系统中的每一个数据对象均具有索引信息,索引信息用于标识数据对象在文件系统中的隶属关系,从而便于数据对象的定位,即确定数据对象在文件系统中的存储路径。
如前所述,索引信息包括开始标签和结束标签。其中,开始标签是目录型数据对象的一项索引信息,其用于存储该目录型数据对象中的第一个子数据对象在线性索引中的位置信息。位置信息例如可以是数据对象在线性索引中的地址偏移量,但不限于此。特别地,当一目录为空目录(即该目录中不包括任何子数据对象)时,该目录的开始标签中存储预设的特殊标识符,特殊标识符例如可以是NULL,但不限于此。基于开始标签,可以方便地在线性索引中定位某一目录所包括的数据对象。
结束标签是任一目录下的最后一个子数据对象的一项索引信息,其用于存储该目录在线性索引中的位置信息。该最后一个子数据对象可能是目录,也可能是文件。位置信息例如可以是子数据对象所属的父目录在线性索引中的地址偏移量,但不限于此。基于结束标签,可以方便地在线性索引中定位某一数据对象所隶属的父目录。
例如,目录d1中包括文件f1、文件f2和子目录d3,相应地,在线性索引中将先后存储目录d1、文件f1、文件f2和子目录d3的名称和索引信息。本领域技术人员可以理解,由于线性索引按照文件系统的层级顺序设置,因此,在线性索引中,文件f1的名称和索引信息、文件f2的名称和索引信息、子目录d3的名称和索引信息依次相邻存储,但目录d1的索引信息与文件f1的名称不一定相邻存储。目录d1的索引信息包括开始标签,该开始标签中存储有其所包括的第一个子数据对象,即文件f1在线性索引中的地址偏移量,即存储有文件f1的名称在线性索引中的地址偏移量。子目录d3为目录d1中的最后一个子数据对象,子目录d3的索引信息包括结束标签,该结束标签中存储有目录d1在线性索引中的地址偏移量,即目录d1的名称在线性索引中的地址偏移量。
根据一种实施例,除了上述开始标签和结束标签之外,索引信息还包括数据对象的类型标识。需要说明的是,本发明对不同类型的数据对象所对应的类型标识不做限制,只要保证不同类型的数据对象的类型标识不同即可。例如,数据对象的类型包括文件和目录,为了进一步节省线性索引的存储空间,可以采用一个预设的字符(例如小写字母‘t’)来标识文件型数据对象,对于目录型数据对象则不做标识。
根据一种实施例,索引信息还包括结束标识符,具体地,每个目录下的最后一个子数据对象的索引信息包括用于表示本目录内容结束的结束标识符。结束标识符可以是任意长度的字符串,本发明对结束标识符的具体内容不做限制。在一个实施例中,可以将结束标识符设置为字符‘0’。例如,目录d1中包括文件f1、文件f2和子目录d3,相应地,在线性索引中将先后存储目录d1、文件f1、文件f2和子目录d3的名称和索引信息。子目录d3为目录d1中的最后一个子数据对象,子目录d3的索引信息还包括结束标识符‘0’。
需要说明的是,索引信息包括多种信息项目,每一个数据对象的索引信息不一定包括所有信息项目,此外,不同数据对象的索引信息所包括的信息项目的数量、种类也可能不同。例如,在前述实施例中,索引信息包括开始标签、结束标签、类型标识和结束标识符四种,目录型数据对象的索引信息包括开始标签,但不一定包括结束标签(只有该目录同时是其父目录中的最后一个子数据对象时,该目录才具有结束标签)。
另外,尽管不同数据对象的索引信息所包括的信息项目的数量、种类不一定相同,但是,每一个信息项目所占用的存储空间是固定的,例如,开始标签、结束标签存储的都是固定长度(例如四个字节)的地址偏移量,类型标识和结束标识符都是固定长度(例如一个字节)的标识符。这样,在逐层遍历树状文件系统以生成线性索引时,可以根据数据对象的类型和隶属关系,确定该数据对象所包括的索引信息项目,为每一数据对象分配存储空间,并向存储空间中写入相应的值。
在本发明的线性索引中,相邻的数据对象,即同级目录下的文件相邻存储,这有利于内存访问优化。此外,线性存储也便于数据文件的存盘与读盘进一步地,本发明的线性索引使用4字节的地址偏移量而非通常的8字节的指针来表示位置,节省了存储空间,减少了无效数据的存储与无效内存的访问。
例如,图3示出了根据本发明一个实施例的文件系统结构的示意图。如图3所示,根目录下包括d1、d2两个目录。目录d1进一步包括文件abc、文件aef和目录d3,目录d3为空目录;目录d2进一步包括文件abef。在图3所示的实施例中,将根目录所在的层级记为树状文件系统的第0层,将目录d1、d2所在的层级记为第1层,将文件abc、aef、abef以及目录d3所在的层级记为第2层。
逐层遍历图3所示的文件系统,生成如图4所示的线性索引。线性索引中顺序包括文件头header(又称引导信息)、第1层各数据对象的名称和索引信息、以及第2层各数据对象的名称和索引信息。
预先定义数据对象的索引信息包括开始标签、结束标签、数据对象的类型标识和结束标识符四种信息项目,各信息项目的具体含义如前文所述。定义当目录为空目录时,在该目录的开始标签中存储预设的特殊标识符NULL。数据对象的类型包括文件和目录两种,定义文件型数据对象的类型标识为字符‘t’,目录型数据对象的类型标识缺省,即对目录型数据对象不做标识。另外,定义结束标识符为字符‘0’。
具体地,在建立线性索引时,首先写入header,随后,遍历文件系统的第一层的各数据对象。第一层的第一个数据对象为目录d1,将目录d1的名称(即字符串“d1”)写入线性索引。由于d1为目录型数据对象,且不是其父目录(即根目录)中的最后一个数据对象,因此,目录d1的索引信息仅包括开始标签s1。开始标签s1中存储目录d1的第一个子数据对象,即文件abc在线性索引中的地址偏移量。由于目前尚未遍历到文件abc,因此文件abc的地址偏移量未知,可以先为开始标签s1预留出四字节的存储空间,待后续遍历到文件abc时,再向开始标签s1中写入文件abc的地址偏移量。
随后,将第一层的第二个数据对象,即目录d2的名称(即字符串“d2”)写入线性索引。由于d2为目录型数据对象,且是其父目录(即根目录)下的最后一个数据对象,因此,目录d2的索引信息包括开始标签s2、结束标识符‘0’和结束标签e1。其中,开始标签s2中存储目录d2的第一个子数据对象,即文件abef在线性索引中的地址偏移量。由于目前尚未遍历到文件abef,因此文件abef的偏移量未知,可以先为开始标签s2预留出四字节的存储空间,待后续遍历到文件abef时,再向开始标签s2中写入文件abef的地址偏移量。结束标签e1中存储其父目录,即根目录的地址偏移量。由于根目录为文件系统的最顶层,因此,可以不对其地址偏移量做特殊标注,即可以在结束标签e1中存储缺省值。
随后,遍历文件系统的第二层的各数据对象。第二层的第一个数据对象为文件abc,将文件abc的名称(即字符串“abc”)写入线性索引。由于abc为文件型数据对象,且不是其父目录(即目录d1)中的最后一个数据对象,因此,文件abc的索引信息仅包括类型标识‘t’,将类型标识‘t’写入线性索引。
随后,将第二层的第二个数据对象,即文件aef的名称(即字符串“aef”)写入线性索引。由于aef为文件型数据对象,且不是其父目录(即目录d1)中的最后一个数据对象,因此,文件aef的索引信息仅包括类型标识‘t’,将类型标识‘t’写入线性索引。
随后,将第二层的第三个数据对象,即目录d3的名称(即字符串“d3”)写入线性索引。由于目录d3为目录型数据对象,且是其父目录(即目录d1)中的最后一个数据对象,因此,目录d3的索引信息包括开始标签s3、结束标识符‘0’和结束标签e2。其中,由于d3为空目录,因此在开始标签s3中写入特殊标识符NULL。结束标签e2中存储其父目录,即目录d1(的名称)的地址偏移量。
随后,将第二层的第四个数据对象,即文件abef的名称(即字符串“abef”)写入线性索引。由于abef为文件型数据对象,且是其父目录(即目录d2)中的最后一个数据对象,因此,文件abef的索引信息包括类型标识‘t’、结束标识符‘0’和结束标签e3。结束标签e3中存储其父目录,即目录d2(的名称)的地址偏移量。
根据一种实施例,如图5所示,索引建立方法200还包括步骤S220。在步骤S220中,分别确定各个数据对象的名称所包括的子字符串;以子字符串为键,以包含子字符串的数据对象的名称为值,建立倒排索引。
例如,表1示出了文件abc、文件aef、文件abef所包括的子字符串:
表1
数据对象名称 | 数据对象名称所包括的子字符串 |
abc | a,b,c,ab,bc,abc |
aef | a,e,f,ae,ef,aef |
abef | a,b,e,f,ab,be,ef,abe,bef,abef |
以表1中的子字符串为键,以包含子字符串的数据对象的名称为值,建立倒排索引,如表2所示。倒排索引包括多个倒排索引链(表2中除表头之外的每一行都是一个倒排索引链),每一个倒排索引链对应于一个子字符串。基于倒排索引,可以快速确定名称中包含指定子字符串的数据对象。
表2
上述实施例中以文件abc、文件aef、文件abef为例,说明了倒排索引的建立过程。但是,本领域技术人员可以理解,在实践中,可以对文件系统中的所有数据对象建立倒排索引,即,倒排索引中不仅包括文件型数据对象的名称,还包括目录型数据对象的名称。
根据一种实施例,为了进一步提高查找数据对象名称的速度,采用哈希链表的形式来存储数据对象名称的倒排索引。首先,计算子字符串的哈希值。哈希值是按照一定算法计算出来的子字符串的映射值,本发明对计算哈希值所采用的算法不做限制。随后,根据哈希值,以哈希链表的形式存储倒排索引,哈希链表包括多个链表,每个链表包括至少一个子字符串及其对应的数据对象的名称,其中,哈希值相同的子字符串位于同一个链表中。
图6示出了根据本发明一个实施例的采用哈希链表来存储倒排索引的示意图。如图6所示,哈希链表包括哈希表和链表两部分。哈希表是一个数组,数组中的每个元素保存一个指针,指针指向一个链表,链表中包括哈希值相同的一个或多个子字符串及其对应的数据对象的名称。例如,针对表2所示的倒排索引,分别计算各个子字符串的哈希值。经过计算,得出子字符串a、f、ef的哈希值相同,其哈希值所对应的链表为链表2,链表2中存储有子字符串a、f、ef及其所对应的数据对象的名称。子字符串b、ab、be、abe、abef的哈希值相同,其哈希值所对应的链表为链表3,链表3中存储有子字符串b、ab、be、abe、abef及其所对应的数据对象的名称。子字符串c、bc、abc的哈希值相同,其哈希值所对应的链表为链表4,链表4中存储有子字符串c、bc、abc及其所对应的数据对象的名称。子字符串e、ae、aef、bef的哈希值相同,其哈希值所对应的链表为链表7,链表7中存储有子字符串e、ae、aef、bef及其所对应的数据对象的名称。
根据一种实施例,索引建立方法200还包括更新索引的步骤,即:当通过特定接口获取到文件系统的更新信息时,根据文件系统的更新信息,实时更新索引。具体地,内核模块通过kprobes内核接口对Linux内核中虚拟文件系统(VFS)的目录与文件的创建、删除、移动等操作进行监控,并将对应的操作记录下来,以便用户态模块调用,以更新索引信息。其流程如下:
1、内核模块加载进入Linux操作系统内核,通过kprobes挂钩vfs_create等虚拟文件系统的内核函数,并创建/proc/vfs_changes虚拟文件提供用户态模块的访问接口;
2、应用程序通过系统调用新建、移动或者删除文件;
3、内核模块通过kprobes技术得知对应虚拟文件系统内核函数的调用参数与调用结果;
4、在相应内核函数调用成功时,内核模块将对相应文件系统的改动进行记录,保存在内部的缓存区中;
5、用户态模块通过对/proc/vfs_changes虚拟文件的访问,定期获得文件系统的更新;
6、用户态模块根据获取到的更新信息更新内部的文件系统线性索引。
图7给出了内核模块挂钩虚拟文件系统获取文件系统更新的结构示意图。文件系统的名称为anything。当用户需要查询时,用户态模块将对整个文件系统的线性索引进行遍历比较,而不再需要进行额外的文件系统递归遍历,也不再需要进行大量的索引文件保存与合并,从而可以保证查询速度,实时得到最新的搜索结果。
通过执行索引建立方法200,能够建立文件系统的线性索引。基于该线性索引,可以实现高效的数据查询。
图8示出了根据本发明一个实施例的数据查询方法800的流程图。方法800在计算设备(例如前述计算设备100)中执行,用于根据已建立的文件系统的线性索引来实现高效的数据查询。如图8所示,方法800始于步骤S810。
在步骤S810中,获取查询词。
随后,在步骤S820中,在线性索引中查找名称中包括查询词的目标数据对象。
根据一种实施例,当文件系统设置有数据对象名称的倒排索引时,可以根据倒排索引来确定名称中包括查询词的目标数据对象。具体地,倒排索引以子字符串为键,以包含子字符串的数据对象的名称为值。以查询词为目标子字符串,根据倒排索引,即可查找确定出目标子字符串所对应的目标数据对象。
根据一种实施例,倒排索引以哈希链表的形式存储,哈希链表包括多个链表,链表中包括至少一个子字符串及其对应的数据对象的名称,哈希值相同的子字符串位于同一个链表中。基于哈希链表,可以按照以下方法来确定目标数据对象:首先,计算查询词的哈希值,根据哈希值来确定目标链表;随后,以查询词为目标子字符串,在目标链表中查找确定目标子字符串所对应的目标数据对象。
随后,在步骤S830中,根据线性索引中位于目标数据对象之后的第一个结束标签来确定目标数据对象所属的目标目录。
随后,在步骤S840中,根据目标目录来确定目标数据对象的存储路径,将存储路径返回给用户。
根据一种实施例,用户在输入查询词的同时,还可以指定查找目录。相应地,方法800进一步包括步骤:获取指定目录;根据指定目录的开始标签来确定指定目录所包括的子数据对象;在子数据对象中查找名称中包括指定查询词的目标数据对象。
以下以图4所示的线性索引和图6所示的哈希链表为例,来说明本发明的数据查找过程。
首先,获取用户输入的查询词。例如,用户输入的查询词为字符串“ab”。
随后,在线性索引中查找名称中包含“ab”的目标数据对象。具体包括以下步骤1和步骤2:
1、确定名称中包含“ab”的目标数据对象:计算查询词“ab”的哈希值,根据哈希值来确定查询词“ab”所在的目标链表。例如,经过计算,“ab”的哈希值所对应的链表为图6中的链表3,在链表3中找出“ab”这一子字符串,获取其倒排索引链,即表2的编号为6的一行。根据该倒排索引链,确定名称包含“ab”的目标数据对象为abc和abef。
2、在线性索引中查找目标数据对象abc和abef。
随后,在如图4所示的线性索引中找到目标数据对象abc和abef。
在查找目标数据对象abc时,将字符串“abc”分别与线性索引中存储的各数据对象的名称进行比对,从而在线性索引中找出目标数据对象abc。随后,确定线性索引中位于abc之后的第一个结束标签e2,结束标签e2中存储有目标数据对象abc所属的父目录,即目录d1在线性索引中的地址偏移量,从根据结束标签e2可以确定目标数据对象abc所属的目标目录d1。随后,根据位于目标目录d1之后的第一个结束标签e1,由于结束标签e1中存储缺省值,因此确定目录d1的父目录为根目录。将上述线性索引查找过程中依次确定的目标数据对象abc、目录d1、根目录逆序排列,确定目标数据对象的存储路径为/d1/abc。
在查找目标数据对象abef时,将字符串“abef”分别与线性索引中存储的各数据对象的名称进行比对,从而在线性索引中找出目标数据对象abef。随后,确定线性索引中位于abef之后的第一个结束标签e3,结束标签e3中存储有目标数据对象abef所属的父目录,即目录d2在线性索引中的地址偏移量,从根据结束标签e3可以确定目标数据对象abef所属的目标目录d2。随后,根据位于目标目录d2之后的第一个结束标签e1,由于结束标签e1中存储缺省值,因此确定目录d2的父目录为根目录。将上述线性索引查找过程中依次确定的目标数据对象abef、目录d2、根目录逆序排列,确定目标数据对象的存储路径为/d2/abef。
最后,将查找到的目标数据对象abc、abef的存储路径/d1/abc,/d2/abef返回给用户。
本发明的技术方案通过内核模块对Linux虚拟文件系统相关内核函数的挂钩,结合用户态模块的线性缓存区索引实现了高效的文件名搜索功能,可以大大提高基于文件名搜索的速度,同时保持了搜索的实时性与索引文件的小型化。
A11:A10所述的方法,其中,所述文件系统设置有倒排索引,所述倒排索引以子字符串为键,以包含所述子字符串的数据对象的名称为值,所述在所述线性索引中查找名称中包括所述查询词的目标数据对象的步骤,包括:
以所述查询词为目标子字符串,根据所述倒排索引,查找确定所述目标子字符串所对应的目标数据对象。
A12:A11所述的方法,其中,所述倒排索引以哈希链表的形式存储,所述哈希链表包括多个链表,所述链表包括至少一个子字符串及其对应的数据对象的名称,其中,哈希值相同的子字符串位于同一个链表中;
所述在所述线性索引中查找名称中包括所述查询词的目标数据对象的步骤,包括:
计算所述查询词的哈希值,根据所述哈希值来确定目标链表;
以所述查询词为目标子字符串,在所述目标链表中查找确定所述目标子字符串所对应的目标数据对象。
A13:A10-12中所述的方法,还包括:
获取指定目录;
根据指定目录的开始标签来确定所述指定目录所包括的子数据对象;
在所述子数据对象中查找名称中包括指定查询词的目标数据对象。
A14:一种计算设备,包括:
至少一个处理器;和
存储有程序指令的存储器;
当所述程序指令被所述处理器读取并执行时,使得所述计算设备执行如A1-9中任一项所述的索引建立方法或如A10-13中任一项所述的数据查询方法。
A15:一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如A1-9中任一项所述的索引建立方法或如A10-13中任一项所述的数据查询方法。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的索引建立方法或数据查询方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的而非限制性的,本发明的范围由所附权利要求书限定。
Claims (10)
1.一种索引建立方法,在计算设备中执行,适于为文件系统建立索引,所述文件系统包括多个数据对象,所述多个数据对象包括目录和文件,所述方法包括:
根据所述多个数据对象的层级关系,建立所述文件系统的线性索引,所述线性索引包括顺序存储的各个层级的数据对象的名称和索引信息,其中,
任一目录的索引信息包括开始标签,所述开始标签中存储该目录下的第一个子数据对象在所述线性索引中的位置信息;
任一目录下的最后一个子数据对象的索引信息包括结束标签,所述结束标签中存储该目录在所述线性索引中的位置信息。
2.如权利要求1所述的方法,其中,每个目录下的最后一个子数据对象的索引信息包括用于表示本目录内容结束的结束标识符。
3.如权利要求1所述的方法,其中,所述索引信息还包括数据对象的类型标识。
4.如权利要求1所述的方法,其中,所述数据对象还包括链接。
5.如权利要求1-4中任一项所述的方法,其中,当所述任一目录为空目录时,所述任一目录的开始标签中存储预设的特殊标识符。
6.如权利要求1-5中任一项所述的方法,其中,所述位置信息为数据对象在所述线性索引中的地址偏移量。
7.如权利要求1-6中任一项所述的方法,其中,所述方法还包括:
分别确定各个数据对象的名称所包括的子字符串;
以所述子字符串为键,以包含所述子字符串的数据对象的名称为值,建立倒排索引。
8.如权利要求7所述的方法,其中,所述方法还包括:
计算所述子字符串的哈希值;
根据所述哈希值,以哈希链表的形式存储所述倒排索引,所述哈希链表包括多个链表,所述链表包括至少一个子字符串及其对应的数据对象的名称,其中,哈希值相同的子字符串位于同一个链表中。
9.如权利要求1所述的方法,其中,所述方法还包括:
当通过特定接口获取到文件系统的更新信息时,根据所述文件系统的更新信息,实时更新所述线性索引。
10.一种数据查询方法,在计算设备中执行,所述方法适于在文件系统中查找名称中包括指定查询词的数据对象,所述文件系统按照权利要求1-9中任一项所述的方法建立线性索引,所述方法包括:
获取查询词;
在所述线性索引中查找名称中包括所述查询词的目标数据对象;
根据所述线性索引中位于所述目标数据对象之后的第一个结束标签来确定所述目标数据对象所属的目标目录;
根据所述目标目录来确定所述目标数据对象的存储路径,将所述存储路径返回给用户。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110670882.2A CN113297138A (zh) | 2019-06-11 | 2019-06-11 | 索引建立方法、数据查询方法及计算设备 |
CN201910500505.7A CN110275864B (zh) | 2019-06-11 | 2019-06-11 | 索引建立方法、数据查询方法及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910500505.7A CN110275864B (zh) | 2019-06-11 | 2019-06-11 | 索引建立方法、数据查询方法及计算设备 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110670882.2A Division CN113297138A (zh) | 2019-06-11 | 2019-06-11 | 索引建立方法、数据查询方法及计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110275864A true CN110275864A (zh) | 2019-09-24 |
CN110275864B CN110275864B (zh) | 2021-07-16 |
Family
ID=67960584
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910500505.7A Active CN110275864B (zh) | 2019-06-11 | 2019-06-11 | 索引建立方法、数据查询方法及计算设备 |
CN202110670882.2A Pending CN113297138A (zh) | 2019-06-11 | 2019-06-11 | 索引建立方法、数据查询方法及计算设备 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110670882.2A Pending CN113297138A (zh) | 2019-06-11 | 2019-06-11 | 索引建立方法、数据查询方法及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN110275864B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111739190A (zh) * | 2020-05-27 | 2020-10-02 | 深圳市元征科技股份有限公司 | 车辆诊断文件加密方法、装置、设备及存储介质 |
CN111949619A (zh) * | 2020-07-21 | 2020-11-17 | 苏州元核云技术有限公司 | 动态目录生成方法、系统、电子设备及存储介质 |
CN112579526A (zh) * | 2019-09-30 | 2021-03-30 | 陕西西部资信股份有限公司 | 数据处理方法、系统及装置 |
CN112597114A (zh) * | 2020-12-23 | 2021-04-02 | 跬云(上海)信息科技有限公司 | 一种基于对象存储的olap预计算引擎优化方法及应用 |
CN112632069A (zh) * | 2020-12-22 | 2021-04-09 | 中科驭数(北京)科技有限公司 | 哈希表数据存储管理方法、装置、介质和电子设备 |
CN112925671A (zh) * | 2019-12-06 | 2021-06-08 | 伊姆西Ip控股有限责任公司 | 用于管理应用系统的方法、设备和计算机程序产品 |
CN113157209A (zh) * | 2021-04-09 | 2021-07-23 | 北京易华录信息技术股份有限公司 | 一种文件系统到对象存储的数据重建方法及装置 |
CN113626380A (zh) * | 2020-05-06 | 2021-11-09 | 浙江宇视科技有限公司 | 一种目录结构调整方法、装置、设备及存储介质 |
CN114139021A (zh) * | 2022-01-27 | 2022-03-04 | 云丁网络技术(北京)有限公司 | 一种索引信息管理方法和系统 |
CN115238257A (zh) * | 2022-09-26 | 2022-10-25 | 深圳市亲邻科技有限公司 | 门禁人脸权限更新方法、装置、计算机设备及存储介质 |
CN111949619B (zh) * | 2020-07-21 | 2024-04-26 | 苏州元核云技术有限公司 | 动态目录生成方法、系统、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020078A (zh) * | 2011-09-24 | 2013-04-03 | 国家电网公司 | 分布式实时数据库数据层次索引方法 |
CN103902699A (zh) * | 2014-03-31 | 2014-07-02 | 哈尔滨工程大学 | 一种用于大数据环境下可支持多格式特性的数据空间检索方法 |
CN104021223A (zh) * | 2014-06-25 | 2014-09-03 | 国家电网公司 | 一种集群数据库测点的访问方法及装置 |
CN104714966A (zh) * | 2013-12-14 | 2015-06-17 | 中国航空工业集团公司第六三一研究所 | 一种航空电子网络管理信息的存储方法及快速查找方法 |
CN108183821A (zh) * | 2017-12-26 | 2018-06-19 | 国网山东省电力公司信息通信公司 | 一种面向电网业务的应用性能获取方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101610319B (zh) * | 2008-06-17 | 2012-08-01 | 大唐移动通信设备有限公司 | 信息的记录、统计方法及信息的记录、统计装置 |
CN102063446B (zh) * | 2009-11-13 | 2012-07-11 | 中国移动通信集团四川有限公司 | 一种建立倒排索引的方法及倒排索引装置 |
CN105701096A (zh) * | 2014-11-25 | 2016-06-22 | 腾讯科技(深圳)有限公司 | 索引生成方法、数据查询方法、装置及系统 |
-
2019
- 2019-06-11 CN CN201910500505.7A patent/CN110275864B/zh active Active
- 2019-06-11 CN CN202110670882.2A patent/CN113297138A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020078A (zh) * | 2011-09-24 | 2013-04-03 | 国家电网公司 | 分布式实时数据库数据层次索引方法 |
CN104714966A (zh) * | 2013-12-14 | 2015-06-17 | 中国航空工业集团公司第六三一研究所 | 一种航空电子网络管理信息的存储方法及快速查找方法 |
CN103902699A (zh) * | 2014-03-31 | 2014-07-02 | 哈尔滨工程大学 | 一种用于大数据环境下可支持多格式特性的数据空间检索方法 |
CN104021223A (zh) * | 2014-06-25 | 2014-09-03 | 国家电网公司 | 一种集群数据库测点的访问方法及装置 |
CN108183821A (zh) * | 2017-12-26 | 2018-06-19 | 国网山东省电力公司信息通信公司 | 一种面向电网业务的应用性能获取方法及装置 |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579526A (zh) * | 2019-09-30 | 2021-03-30 | 陕西西部资信股份有限公司 | 数据处理方法、系统及装置 |
CN112925671A (zh) * | 2019-12-06 | 2021-06-08 | 伊姆西Ip控股有限责任公司 | 用于管理应用系统的方法、设备和计算机程序产品 |
CN113626380B (zh) * | 2020-05-06 | 2024-04-05 | 浙江宇视科技有限公司 | 一种目录结构调整方法、装置、设备及存储介质 |
CN113626380A (zh) * | 2020-05-06 | 2021-11-09 | 浙江宇视科技有限公司 | 一种目录结构调整方法、装置、设备及存储介质 |
CN111739190B (zh) * | 2020-05-27 | 2022-09-20 | 深圳市元征科技股份有限公司 | 车辆诊断文件加密方法、装置、设备及存储介质 |
CN111739190A (zh) * | 2020-05-27 | 2020-10-02 | 深圳市元征科技股份有限公司 | 车辆诊断文件加密方法、装置、设备及存储介质 |
CN111949619B (zh) * | 2020-07-21 | 2024-04-26 | 苏州元核云技术有限公司 | 动态目录生成方法、系统、电子设备及存储介质 |
CN111949619A (zh) * | 2020-07-21 | 2020-11-17 | 苏州元核云技术有限公司 | 动态目录生成方法、系统、电子设备及存储介质 |
CN112632069A (zh) * | 2020-12-22 | 2021-04-09 | 中科驭数(北京)科技有限公司 | 哈希表数据存储管理方法、装置、介质和电子设备 |
CN112632069B (zh) * | 2020-12-22 | 2021-08-31 | 中科驭数(北京)科技有限公司 | 哈希表数据存储管理方法、装置、介质和电子设备 |
WO2022134269A1 (zh) * | 2020-12-23 | 2022-06-30 | 跬云(上海)信息科技有限公司 | 一种基于对象存储的olap预计算引擎优化方法及应用 |
CN112597114B (zh) * | 2020-12-23 | 2023-09-15 | 跬云(上海)信息科技有限公司 | 一种基于对象存储的olap预计算引擎优化方法及应用 |
CN112597114A (zh) * | 2020-12-23 | 2021-04-02 | 跬云(上海)信息科技有限公司 | 一种基于对象存储的olap预计算引擎优化方法及应用 |
CN113157209A (zh) * | 2021-04-09 | 2021-07-23 | 北京易华录信息技术股份有限公司 | 一种文件系统到对象存储的数据重建方法及装置 |
CN114139021B (zh) * | 2022-01-27 | 2022-06-14 | 云丁网络技术(北京)有限公司 | 一种索引信息管理方法和系统 |
CN114139021A (zh) * | 2022-01-27 | 2022-03-04 | 云丁网络技术(北京)有限公司 | 一种索引信息管理方法和系统 |
CN115238257A (zh) * | 2022-09-26 | 2022-10-25 | 深圳市亲邻科技有限公司 | 门禁人脸权限更新方法、装置、计算机设备及存储介质 |
CN115238257B (zh) * | 2022-09-26 | 2023-01-06 | 深圳市亲邻科技有限公司 | 门禁人脸权限更新方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113297138A (zh) | 2021-08-24 |
CN110275864B (zh) | 2021-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110275864A (zh) | 索引建立方法、数据查询方法及计算设备 | |
US10810179B2 (en) | Distributed graph database | |
CN107515901B (zh) | 一种链式日志存储结构及其哈希索引结构、数据操作方法及服务器、介质 | |
CN107918612B (zh) | 键值存储系统数据结构的实现方法和装置 | |
US9542409B2 (en) | Deduplicated file system | |
JP6094487B2 (ja) | 情報システム、管理装置、データ処理方法、データ構造、プログラム、および記録媒体 | |
CN108804510A (zh) | 键值文件系统 | |
EP1587006A2 (en) | Method and system for renaming consecutive keys in a B-tree | |
CN113961514B (zh) | 数据查询方法及装置 | |
JP2006092515A (ja) | 索引キーを使用して検索を絞込むシステムおよび方法 | |
US10423608B2 (en) | Dynamic directory of objects based on logical attributes | |
CN111400334B (zh) | 数据处理方法、装置、存储介质及电子装置 | |
CN114077680B (zh) | 一种图数据的存储方法、系统及装置 | |
CN110442773A (zh) | 分布式系统中节点缓存方法、系统、装置及计算机介质 | |
US11210134B2 (en) | Atomic execution unit for object storage | |
CN107679182A (zh) | 一种目录配置方法及装置 | |
EP4022429A2 (en) | Vectorized hash tables | |
CN114579561A (zh) | 数据处理方法和装置、存储介质 | |
US9020977B1 (en) | Managing multiprotocol directories | |
Liu et al. | Finding smallest k-compact tree set for keyword queries on graphs using mapreduce | |
CN110709824B (zh) | 一种数据查询方法及装置 | |
US10534708B1 (en) | Shallow cache for content replication | |
WO2023093023A1 (zh) | 一种敏感词过滤方法及装置、存储介质 | |
CN110516122B (zh) | 嵌套型数据的合并方法、装置及电子设备 | |
CN105046162B (zh) | 在内容可寻址存储系统中维护并使用子对父映射的缓存 |
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 |