CN117851341A - 元数据索引方法、装置、计算机设备和存储介质 - Google Patents
元数据索引方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN117851341A CN117851341A CN202311571760.3A CN202311571760A CN117851341A CN 117851341 A CN117851341 A CN 117851341A CN 202311571760 A CN202311571760 A CN 202311571760A CN 117851341 A CN117851341 A CN 117851341A
- Authority
- CN
- China
- Prior art keywords
- index
- node
- field information
- metadata
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000012545 processing Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 16
- 238000010586 diagram Methods 0.000 description 15
- 238000007726 management method Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000012512 characterization method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 2
- 238000007792 addition Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种元数据索引方法、装置、计算机设备和存储介质。方法包括:获取待索引的元数据索引对象的对象标识信息,并确定预先设置的字段拆分标识;在对象标识信息包含有字段拆分标识的情况下,根据字段拆分标识,对对象标识信息进行拆分,得到元数据索引对象的多个索引字段信息以及多个索引字段信息对应的索引层级;根据各索引字段信息、各索引字段信息分别对应的索引层级以及预先构建的索引关系网络,得到元数据索引对象的元数据索引结果。采用本方法能够提高索引元数据的效率。
Description
技术领域
本申请涉及元数据处理技术领域,特别是涉及一种元数据索引方法、装置、计算机设备和存储介质。
背景技术
随着云计算和大数据技术的快速发展,越来越多的企业和机构开始采用对象存储技术来存储和管理海量数据。对象存储是一种分布式的存储架构,它将数据以对象的形式进行存储和管理,每个对象都有对应的元数据来描述它的属性和特征。然而,随着数据规模的不断增大,对象存储中的元数据管理也面临着越来越多的挑战。一方面,元数据的数量和复杂度不断增加,需要更加高效和可靠的管理方案来确保数据的完整性和一致性。另一方面,不同的应用场景和业务需求对元数据管理提出了更高的要求,需要支持更多的元数据类型和自定义属性,以满足不同的数据管理需求。
传统技术中,存在基于数据的管理方法、基于分布式哈希表的方法对元数据或者基于字典树的文件目录存储方法对元数据进行管理或索引。
然而,申请人在实施过程中发现,传统方法存在索引效率低的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高索引效率的元数据索引方法、装置、计算机设备和存储介质。
第一方面,本申请提供了一种元数据索引方法,该方法包括:
获取待索引的元数据索引对象的对象标识信息,并确定预先设置的字段拆分标识;
在对象标识信息包含有字段拆分标识的情况下,根据字段拆分标识,对对象标识信息进行拆分,得到元数据索引对象的多个索引字段信息以及多个索引字段信息对应的索引层级;
根据各索引字段信息、各索引字段信息分别对应的索引层级以及预先构建的索引关系网络,得到元数据索引对象的元数据索引结果。
在其中一个实施例中,根据各索引字段信息、各索引字段信息分别对应的索引层级以及预先构建的索引关系网络,得到元数据索引对象的元数据索引结果,包括:
从索引关系网络中确定当前节点;并根据各索引字段信息分别对应的索引层级以及索引轮次,获取目标索引字段信息;
获取目标索引字段信息在当前节点的存在状态;
在存在状态表征目标索引字段信息存在于当前节点的情况下,获取目标索引字段信息在当前节点中对应的子节点;根据目标索引字段信息对应的子节点,得到元数据索引结果;
在状态表征目标索引字段信息不存在于当前节点的情况下,元数据索引对象的元数据索引结果确认为索引结果不存在。
在其中一个实施例中,根据目标索引字段信息对应的子节点,得到元数据索引结果,包括:
获取子节点的节点标识;
若目标索引字段信息为最后一个索引字段信息,且节点标识表征对象节点,则将子节点的元数据作为目标索引字段信息的目标元数据;
若目标索引字段信息不为最后一个索引字段信息,且节点标识表征路径节点,则将子节点作为新的当前节点,并返回根据各索引字段信息分别对应的索引层级以及索引轮次,获取目标索引字段信息的步骤,直至目标索引字段信息为最后一个索引字段信息。
在其中一个实施例中,根据各索引字段信息、各索引字段信息分别对应的索引层级以及预先构建的索引关系网络,得到元数据索引对象的元数据索引结果,还包括:
从索引关系网络中确定当前节点;并根据各索引字段信息分别对应的索引层级以及索引轮次,获取目标索引字段信息;
在目标索引字段信息不为最后一个索引字段信息的情况下,获取目标索引字段信息在当前节点的存在状态;
在存在状态表征目标索引字段信息存在于当前节点的情况下,获取目标索引字段信息在索引关系网络中对应的子节点;
将子节点作为新的当前节点,并返回根据各索引字段信息分别对应的索引层级以及索引轮次,获取目标索引字段信息的步骤,直至目标索引字段信息为最后一个索引字段信息;
在目标索引字段信息为最后一个索引字段信息的情况下,根据当前节点包含的子节点和目标索引字段信息,确定的目标子节点,并根据目标子节点得到元数据索引对象的元数据索引结果。
在其中一个实施例中,根据当前节点包含的子节点和目标索引字段信息,确定的目标子节点,包括:
获取当前节点包含的子节点的节点标识;节点标识包括对象节点标识和路径节点标识;
根据对象节点标识和路径节点标识,对子节点进行归并遍历处理,得到候选子节点;
若候选子节点的节点名称与目标索引字段信息相匹配,则将候选子节点作为目标子节点。
在其中一个实施例中,根据目标子节点得到元数据索引对象的元数据索引结果,包括:
确定目标子节点的节点标识;节点标识包括对象节点标识和路径节点标识;
在目标子节点的节点标识为对象节点标识的情况下,将目标子节点确认为目标索引结果;
在目标子节点的节点标识为路径节点标识的情况下,获取预设的索引模式;
若索引模式为索引路径节点的第一索引模式,则将目标子节点确认为目标索引结果;若索引模式为索引对象节点的第二索引模式,则将目标子节点中包含的对象节点确认为目标索引结果。
在其中一个实施例中,根据各索引字段信息、各索引字段信息分别对应的索引层级以及预先构建的索引关系网络,得到元数据索引对象的元数据索引结果之前,还包括:
获取多个元数据存储对象;
利用字段拆分标识,分别对各元数据存储对象的对象标识信息进行拆分,得到各元数据存储对象的拆分字段信息、以及各拆分字段信息对应的索引层级;
根据各拆分字段信息和各拆分字段信息对应的索引层级,构建索引关系网络。
第二方面,本申请还提供了一种元数据索引装置,该装置包括:
标识获取模块,用于获取待索引的元数据索引对象的对象标识信息,并确定预先设置的字段拆分标识;
索引字段获取模块,用于在对象标识信息包含有字段拆分标识的情况下,根据字段拆分标识,对对象标识信息进行拆分,得到元数据索引对象的多个索引字段信息以及多个索引字段信息对应的索引层级;
索引结果获取模块,用于根据各索引字段信息、各索引字段信息分别对应的索引层级以及预先构建的索引关系网络,得到元数据索引对象的元数据索引结果。
第三方面,本申请还提供了一种计算机设备,该计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述的方法的步骤。
第四方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的方法的步骤。
上述元数据索引方法、装置、计算机设备和存储介质,获取待索引的元数据索引对象的对象标识信息,并确定预先设置的字段拆分标识;在对象标识信息包含有字段拆分标识的情况下,根据字段拆分标识,对对象标识信息进行拆分,得到元数据索引对象的多个索引字段信息以及多个索引字段信息对应的索引层级;根据各索引字段信息、各索引字段信息分别对应的索引层级以及预先构建的索引关系网络,得到元数据索引对象的元数据索引结果。与传统技术相比,本申请通过在对象标识信息包含有字段拆分标识的情况下,对拆分得到元数据索引对象的多个索引字段信息,并且可以根据多个索引字段信息、对应的索引层级以及索引关系网络得到元数据索引结果,如此,通过索引字段信息得到元数据索引结果,从而可以提高元数据的索引效率。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中元数据索引方法的应用环境图;
图2为一个实施例中元数据索引方法的流程示意图;
图3为一个实施例中对象存储系统的结构框图;
图4为一个实施例中获取元数据索引结果步骤的流程示意图;
图5为一个实施例中确定的目标子节点步骤的流程示意图;
图6为另一个实施例中对象存储系统的结构框图;
图7为一个实施例中索引结构(索引关系网络)的逻辑示意图;
图8为一个实施例中在索引树中插入存储对象的流程示意图;
图9为一个实施例中从索引树中查找指定的索引对象的流程示意图;
图10为一个实施例中指定路径前缀列表对象的流程示意图;
图11为一个实施例中归并遍历操作的流程示意图;
图12为一个实施例中指针遍历链表的流程示意图;
图13为一个实施例中元数据索引装置的结构框图;
图14为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的元数据索引方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。服务器104可以响应于终端102的元数据索引处理。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个示例性的实施例中,如图2所示,提供了一种元数据索引方法,以该方法应用于图1中的服务器为例进行说明,包括以下S202至S206。其中:
S202,获取待索引的元数据索引对象的对象标识信息,并确定预先设置的字段拆分标识。
其中,元数据索引对象可以是需要索引出元数据的对象,可以作为索引的对象。对象标识信息可以是用于标识对象标识信息的信息,例如,可以是对象标识信息的编号信息、对象标识信息的名称信息等。字段拆分标识可以是用于拆分字段的标识,例如,可以是预先设置的字符标识,可以是预先设置的分隔符。字段拆分标识的数量可以是至少一个。
示例性地,服务器可以接收需要索引元数据的索引对象,并且可以获取用于标识元数据索引对象的元数据索引对象,服务器还可以获取预先设置并存储的字段拆分标识。
可选地,服务器可以获取元数据索引对象的对象名称以及预先设置的分隔符。可以利用预设的分隔符对对象名称(Key)进行拆分。分隔符可以是一个,也可以包含多个。
S204,在对象标识信息包含有字段拆分标识的情况下,根据字段拆分标识,对对象标识信息进行拆分,得到元数据索引对象的多个索引字段信息以及多个索引字段信息对应的索引层级。
其中,索引字段信息可以是对对象标识信息进行拆分后得到的字段信息,可以是对象标识信息拆分后得到的多段字段,例如,将对象标识信息ABCD拆分后可以得到索引字段信息分别为AB和CD。索引层级可以是索引字段信息对应的预设层级,可以是对索引字段信息进行索引的顺序,例如,将对象标识信息ABCD拆分后得到的索引字段信息AB、CD,可以按照预设的规则,确定AB为第一索引层级,CD为第二索引层级,可以先对AB进行索引,再对CD进行索引。
示例性地,服务器可以判断对象标识信息是否包含有字段拆分标识,如果对象标识信息没有包含有字段拆分标识,则说明对象标识信息不可以进行元数据的索引,即,数据库中没有该对象标识信息对应的元数据,服务器可以返回的索引结果为空。
如果对象标识信息包含有字段拆分标识,则说明数据库中可能存在该对象标识信息对应的元数据,服务器可以根据预设的字段拆分标识,对对象标识信息进行拆分,将元数据索引对象拆分为多个索引字段信息,并且可以根据预设的规则确定多个索引字段信息对应的索引层级。
可选地,使用对象名称中所包含有的分隔符对对象名称进行拆分,得到路径分段(字段拆分标识)。
S206,根据各索引字段信息、各索引字段信息分别对应的索引层级以及预先构建的索引关系网络,得到元数据索引对象的元数据索引结果。
其中,索引关系网络可以是用于索引元数据对象的网络,可以是索引树。索引关系网络可以是有多个索引字段信息构建的关系网络,索引关系网络可以以组为节点构建索引数,以实现对元数据的快速查询和过滤。元数据索引结果可以是对元数据索引对象进行元数据索引的结果,元数据索引结果可以为空。
示例性地,服务器可以根据每一个索引字段信息和每一个索引字段信息对应的索引层级,从索引关系网络中进行索引,可以得到元数据索引对象的元数据索引结果,例如,索引关系网络可以不包含有该元数据索引对象的索引字段信息对应的元数据,则元数据索引对象的元数据索引结果为空。
可选地,可以对索引关系网络的每一个节点进行查找,确定该节点中是否对应有索引字段信息,对应有索引字段信息则可以对下一个节点进行查找,得到元数据索引对象的元数据索引结果。
作为一个示例,本实施例可以应用于如图3所示的逻辑框图,索引模块310独立于对象存储服务独立部署,应用于现有的对象存储服务320。现有的对象存储服务一般包含一个请求网关代理330和对象存储核心的其他服务,请求网关代理用于接收和解析来着用户的调用请求,对象存储服务330完成实际的请求处理。对象存储的请求网关代理330识别出关于对象元数据的查找、列表请求路由到索引模块310处理;正常的业务请求仍然路由对象存储服务320进行处理,当用户的请求涉及元数据的增加、修改或删除时,通过对象存储本身的通知和回调机制,将新增、修改和删除的元数据信息发送至索引模块310,用于更新索引信息。
本实施例中,获取待索引的元数据索引对象的对象标识信息,并确定预先设置的字段拆分标识;在对象标识信息包含有字段拆分标识的情况下,根据字段拆分标识,对对象标识信息进行拆分,得到元数据索引对象的多个索引字段信息以及多个索引字段信息对应的索引层级;根据各索引字段信息、各索引字段信息分别对应的索引层级以及预先构建的索引关系网络,得到元数据索引对象的元数据索引结果。与传统技术相比,本申请通过在对象标识信息包含有字段拆分标识的情况下,对拆分得到元数据索引对象的多个索引字段信息,并且可以根据多个索引字段信息、对应的索引层级以及索引关系网络得到元数据索引结果,如此,通过索引字段信息得到元数据索引结果,从而可以提高元数据的索引效率。
在一个示例性的实施例中,如图4所示,根据各索引字段信息、各索引字段信息分别对应的索引层级以及预先构建的索引关系网络,得到元数据索引对象的元数据索引结果,包括S402至S402,其中:
S402,从索引关系网络中确定当前节点;并根据各索引字段信息分别对应的索引层级以及索引轮次,获取目标索引字段信息;
S404,获取目标索引字段信息在当前节点的存在状态;
S406,在存在状态表征目标索引字段信息存在于当前节点的情况下,获取目标索引字段信息在当前节点中对应的子节点;根据目标索引字段信息对应的子节点,得到元数据索引结果;
S408,在状态表征目标索引字段信息不存在于当前节点的情况下,元数据索引对象的元数据索引结果确认为索引结果不存在。
其中,当前节点可以是索引关系网络中的任意一个节点,当前节点可以更新。索引轮次可以是当前的索引顺序,例如,当前索引轮次为第二轮次,则可以对索引层级为2的索引字段信息进行索引。目标索引字段信息可以是当前索引轮次对应的索引字段信息。存在状态可以用于表征目标索引字段信息是否存在于当前节点中。子节点可以是当前节点包含的低级别的节点,低级别是相对于当前节点的级别来说的。
示例性地,服务器可以从索引关系网络中确定当前节点,例如,开始可以将索引关系网络中根节点作为当前节点,并在当前节点进行索引,在当前节点索引完成后可以将根节点的下一子节点确定当前节点,如此类推,直到停止索引。服务器可以确定当前的索引轮次,例如,对根节点进行索引,可以是第一索引轮次。服务器可以根据每一个索引字段信息对应的索引层级以及当前的索引轮次,获取目标索引字段信息。服务器可以判断目标索引字段信息是否存在于当前节点以及当前节点的子孙节点中,如果目标索引字段信息不存在于当前节点或者当前节点的子孙节点中,则说明目标索引字段信息不存在于索引关系网络中,则元数据索引对象也就不存于索引关系网络中,元数据索引对象的元数据索引结果为空。
如果存在状态表征目标索引字段信息存在于当前节点,则服务器可以确定取目标索引字段信息在当前节点中所对应的子节点,例如,从当前节点及当前的子孙节点中查找节点标识等于该目标索引字段信息的目标子节点。服务器可以根据目标索引字段信息对应的子节点,得到元数据索引结果。例如,可以根据目标索引字段信息对应的子节点,继续进行索引,直到完成所有索引字段信息的索引,得到元数据索引结果。其中,目标索引字段信息存在于当前节点可以包含了目标索引字段信息存在于当前节点的子孙节点的情况。
本实施例中,通过根据各索引字段信息分别对应的索引层级以及索引轮次,获取目标索引字段信息;获取目标索引字段信息在当前节点的存在状态;在存在状态表征目标索引字段信息存在于当前节点的情况下,获取目标索引字段信息在当前节点中对应的子节点;根据目标索引字段信息对应的子节点,得到元数据索引结果;在状态表征目标索引字段信息不存在于当前节点的情况下,元数据索引对象的元数据索引结果确认为索引结果不存在。如此,能够通过目标索引字段信息判断其是否存在索引关系网络中,得到元数据索引对象的索引结果,从而可以提高元数据索引效率。
在一个示例性的实施例中,根据目标索引字段信息对应的子节点,得到元数据索引结果,包括:
获取子节点的节点标识;
若目标索引字段信息为最后一个索引字段信息,且节点标识表征对象节点,则将子节点的元数据作为目标索引字段信息的目标元数据;
若目标索引字段信息不为最后一个索引字段信息,且节点标识表征路径节点,则将子节点作为新的当前节点,并返回根据各索引字段信息分别对应的索引层级以及索引轮次,获取目标索引字段信息的步骤,直至目标索引字段信息为最后一个索引字段信息。
其中,节点标识可以是用于标识节点的信息。节点标识可以和对象标识信息相对应,例如,如果对象标识信息为元数据索引对象的名称,则节点标识可以是节点的名称;如果对象标识信息为元数据索引对象的编号,则节点标识可以是节点的编号。最后一个索引字段信息可以是按照预审顺序确定的最后一个索引顺序的索引字段信息。对象节点可以是索引关系网络中作为索引目标对象的节点,例如,可以是索引关系网络中的最后一个节点。路径节点可以是索引关系网络中索引路径上的节点,例如,可以是索引关系网络中的中间节点。作为一个示例,/a/b1/file-3可以作为索引关系网络的一个索引路径,使用分隔符拆分之后得到4个分段/、a/、b1/和file-3,第一个分割符作为的第一个分段为根节点,第二个分段生成路径节点a/,第三个分段生成路径节点b1/,以作为路径节点a/的子孙节点,第四段为最后一个分段,生成对象节点file-3,为路径节点b1/的对象节点。目标元数据可以元数据索引对象的索引结果,可以说明找到元数据索引对象对应的元数据。
示例性地,服务器可以获取子节点的节点标识;如果目标索引字段信息为对象标识信息的最后一个索引字段信息,并且子节点为对象节点,则可以说明在索引关系网络中找到了元数据索引对象对应的对象节点,则可以将该对象节点的元数据作为元数据索引对象的元数据。
如果目标索引字段信息不是对象标识信息的最后一个索引字段信息,并且子节点是路径节点,则可以将该子节点切换为新的当前节点,并且返回S404中根据各索引字段信息分别对应的索引层级以及索引轮次,获取目标索引字段信息的步骤,直到目标索引字段信息为最后一个索引字段信息,已完成对元数据索引对象的元数据索引。
本实施例中,通过获取子节点的节点标识;并且判断目标索引字段信息是否为最后一个索引字段信息,以及判断节点标识表征哪一个节点,能够有效准确地完成对元数据索引对象的索引,从而可以提高元数据索引的效率。
在一个示例性的实施例中,根据各索引字段信息、各索引字段信息分别对应的索引层级以及预先构建的索引关系网络,得到元数据索引对象的元数据索引结果,还包括:
从索引关系网络中确定当前节点;并根据各索引字段信息分别对应的索引层级以及索引轮次,获取目标索引字段信息;
在目标索引字段信息不为最后一个索引字段信息的情况下,获取目标索引字段信息在当前节点的存在状态;
在存在状态表征目标索引字段信息存在于当前节点的情况下,获取目标索引字段信息在索引关系网络中对应的子节点;
将子节点作为新的当前节点,并返回根据各索引字段信息分别对应的索引层级以及索引轮次,获取目标索引字段信息的步骤,直至目标索引字段信息为最后一个索引字段信息;
在目标索引字段信息为最后一个索引字段信息的情况下,根据当前节点包含的子节点和目标索引字段信息,确定的目标子节点,并根据目标子节点得到元数据索引对象的元数据索引结果。
其中,当前节点可以是索引关系网络中的任意一个节点,当前节点可以更新。索引轮次可以是当前的索引顺序,例如,当前索引轮次为第二轮次,则可以对索引层级为2的索引字段信息进行索引。目标索引字段信息可以是当前索引轮次对应的索引字段信息。存在状态可以用于表征目标索引字段信息是否存在于当前节点中。子节点可以是当前节点包含的低级别的节点,低级别是相对于当前节点的级别来说的。最后一个索引字段信息可以是按照预审顺序确定的最后一个索引顺序的索引字段信息。
示例性地,服务器可以从索引关系网络中确定当前节点,例如,开始可以将索引关系网络中根节点作为当前节点,并在当前节点进行索引,在当前节点索引完成后可以将根节点的下一子节点确定当前节点,如此类推,直到停止索引。服务器可以确定当前的索引轮次,例如,对根节点进行索引,可以是第一索引轮次。服务器可以根据每一个索引字段信息对应的索引层级以及当前的索引轮次,获取目标索引字段信息。服务器可以判断目标索引字段信息是不是对象标识信息的最后一个索引字段信息,如果目标索引字段信息不是最后一个索引字段信息,服务器可以获取目标索引字段信息是否存在于当前节点中。如果目标索引字段信息存在于当前节点中,则可以返回元数据索引对象的索引结果为空。如果目标索引字段信息存在于当前节点中,则服务器可以获取目标索引字段信息在索引关系网络中当前节点所对应的子节点;例如,从当前节点及当前的子孙节点中查找节点标识等于该目标索引字段信息的子节点,可以将该子节点作为新的当前节点,并返回根据各索引字段信息分别对应的索引层级以及索引轮次,获取目标索引字段信息的步骤,直到目标索引字段信息为最后一个索引字段信息。
如果目标索引字段信息为最后一个索引字段信息,服务器可以根据当前节点包含的子节点和目标索引字段信息,确定的目标子节点,例如,可以对当前节点包含的多个子节点进行筛选,并从筛选出来的子节点中,将与目标索引字段信息匹配的节点标识对应的子节点作为目标子节点;服务器根据目标子节点得到元数据索引对象的元数据索引结果,例如,可以将目标子节点确定为针对元数据索引对象的索引对象。
本实施例中,可以通过判断目标索引字段信息是不是最后一个索引字段信息,并且判断标索引字段信息是不是存在于当前节点,如果目标索引字段信息存在于当前节点,则可以从当前节点包含的子节点确定出目标子节点,并根据目标子节点得到元数据索引对象的元数据索引结果。如此,有利于准确无误地确定出元数据索引对象的元数据索引结果,从而可以提高元数据索引的效率。
在一个示例性的实施例中,元数据索引对象可以是请求查询的前缀,可以使用预先设置的分隔符对请求查询的前缀(元数据索引对象)进行拆分,得到前缀的路径分段;设置索引关系网络的根节点为当前节点;按顺序从前缀路径分段取下一个分段;如果当前分段不是最后一个分段执行,从当前节点的子孙路径节点链表中查找名称为当前分段的路径节点,其中,子孙路径节点链表可以是当前节点包含的子孙节点形成的链表,如果存在这一的路径节点,则将当前节点切换至该路径节点,继续按顺序从前缀路径分段取下一个分段的步骤;否则,说明没有节点对象使用该前缀,反馈空的结果列表,处理结束。如此,能够基于请求查询的前缀从索引关系网络查询对应的节点,从而可以提高索引元数据的效率。
在一个示例性的实施例中,如图5所示,根据当前节点包含的子节点和目标索引字段信息,确定的目标子节点,包括S502至S506,其中:
S502,获取当前节点包含的子节点的节点标识;节点标识包括对象节点标识和路径节点标识;
S504,根据对象节点标识和路径节点标识,对子节点进行归并遍历处理,得到候选子节点;
S506,若候选子节点的节点名称与目标索引字段信息相匹配,则将候选子节点作为目标子节点。
其中,节点标识可以是用于标识节点的信息。对象节点标识可以是表征该节点为对象节点。路径节点标识可以是表征该节点为路径节点。
示例性地,服务器可以获取当前节点包含的各个子节点的节点标识。可以将对象节点标识对应的子节点作为第一子节点,可以将路径节点标识对应的子节点作为第二子节点,可以对归并遍历第一子节点和第二子节点,得到候选子节点。如果该候选子节点的节点名称与目标索引字段信息相匹配,则可以将候选子节点作为目标子节点。
可选地,服务器可以归并遍历当前节点的对象节点链表和子孙路径节点链表,获取当前节点下的一个子对象节点或者子路径节点,作为候选子节点,使用候选子节点的节点名称前缀匹配目标索引字段信息,如果二者不匹配,则可以继续归并遍历的步骤,如果两者匹配,则可以将候选子节点作为目标子节点。
本实施例中,通过获取当前节点包含的子节点的节点标识;并根据对象节点标识和路径节点标识,对子节点进行归并遍历处理,得到候选子节点;若候选子节点的节点名称与目标索引字段信息相匹配,则将候选子节点作为目标子节点。如此,有利于准确地获取需要的索引的子节点,从而可以提高元数据索引的效率。
在一个示例性的实施例中,根据目标子节点得到元数据索引对象的元数据索引结果,包括:
确定目标子节点的节点标识;节点标识包括对象节点标识和路径节点标识;
在目标子节点的节点标识为对象节点标识的情况下,将目标子节点确认为目标索引结果;
在目标子节点的节点标识为路径节点标识的情况下,获取预设的索引模式;
若索引模式为索引路径节点的第一索引模式,则将目标子节点确认为目标索引结果;若索引模式为索引对象节点的第二索引模式,则将目标子节点中包含的对象节点确认为目标索引结果。
其中,节点标识可以是用于标识节点的信息。对象节点标识可以是表征该节点为对象节点。路径节点标识可以是表征该节点为路径节点。索引模式可以预先设置的索引要求确定的模式。例如,索引模式可以是要求返回路径节点,则可以将路径节点作为目标索引结果返回,
示例性地,服务器可以获取目标子节点的节点标识。如果目标子节点的节点标识为对象节点标识,则服务器可以直接将目标子节点确认为目标索引结果,可以将目标子节点添加至目标索引结果列表。如果目标子节点的节点标识为路径节点标识,则服务器可以确定预先设置的索引模式,如果索引模式为索引路径节点的第一索引模式,则可以将目标子节点确认为目标索引结果,可以将目标子节点添加至目标结果列表;如果索引模式为索引对象节点的第二索引模式,则可以目标子节点中包含的对象节点确认为目标索引结果,可以使用深度优先策略遍历以该目标子节点为根的对象节点,将遍历到的对象节点添加至结果列表,直至遍历结束或者结果列表中的记录数达到上限。
可选地,如果目标子节点为对象节点;则将该对象添加至结果列表。如果节点为路径节点,且如果列表请求要求返回路径节点,则将该路径节点添加至结果列表;如果不是要求返回路径节点,则使用深度优先策略遍历以该路径节点为根的子树,将遍历到的对象节点添加至结果列表,直至遍历结束或者结果列表中的记录数达到上限。检查结果列表中的记录是否达到上限,如果已达上限,则返回结果列表,处理结束;否则,继续执行归并遍历结束或者结果列表中的记录数达到上限,返回结果列表,处理结束。
本实施例中,在目标子节点的节点标识为对象节点标识的情况下,将目标子节点确认为目标索引结果;在目标子节点的节点标识为路径节点标识的情况下,获取预设的索引模式;若索引模式为索引路径节点的第一索引模式,则将目标子节点确认为目标索引结果;若索引模式为索引对象节点的第二索引模式,则将目标子节点中包含的对象节点确认为目标索引结果。如此,能够准确地确定目标索引结果,从而可以提高元数据索引的准确性和效率。
在一个示例性的实施例中,根据各索引字段信息、各索引字段信息分别对应的索引层级以及预先构建的索引关系网络,得到元数据索引对象的元数据索引结果之前,还包括:
获取多个元数据存储对象;
利用字段拆分标识,分别对各元数据存储对象的对象标识信息进行拆分,得到各元数据存储对象的拆分字段信息、以及各拆分字段信息对应的索引层级;
根据各拆分字段信息和各拆分字段信息对应的索引层级,构建索引关系网络。
其中,元数据存储对象可以是用于构建索引关系网络的元数据对象。字段拆分标识可以是用于拆分字段的标识,例如,可以是预先设置的字符标识,可以是预先设置的分隔符。字段拆分标识的数量可以是至少一个。拆分字段信息可以是对各元数据存储对象的对象标识信息拆分得到的字段信息。索引层级可以是拆分字段信息对应的预设层级。
示例性地,服务器可以获取多个元数据存储对象,可以利用预先设置的字段拆分标识,分别对各元数据存储对象的对象标识信息进行拆分,得到各元数据存储对象的拆分字段信息、以及各拆分字段信息对应的索引层级。服务器可以根据每一个拆分字段信息和每一个拆分字段信息对应的索引层级,构建索引关系网络。
本实施例中,通过获取多个元数据存储对象;利用字段拆分标识,分别对各元数据存储对象的对象标识信息进行拆分,得到各元数据存储对象的拆分字段信息、以及各拆分字段信息对应的索引层级;根据各拆分字段信息和各拆分字段信息对应的索引层级,能够构建索引关系网络。如此,能够准确有效地构建索引关系网络,从而可以提高元数据的索引效率。
在一个示例性的实施例中,提供了一种元数据索引方法,包括:可以应用于如图3所示的逻辑框图,索引模块310独立于对象存储服务独立部署,应用于现有的对象存储服务320。现有的对象存储服务一般包含一个请求网关代理330和对象存储核心的其他服务,请求网关代理330用于接收和解析来着用户的调用请求,对象存储服务320完成实际的请求处理。对象存储的请求网关代理330识别出关于对象元数据的查找、列表请求路由到索引模块310处理;正常的业务请求仍然路由对象存储服务320进行处理,当用户的请求涉及元数据的增加、修改或删除时,通过对象存储本身的通知和回调机制,将新增、修改和删除的元数据信息发送至索引模块310,用于更新索引信息。
还可以应用于如图6所示的对象存储系统,索引模块610为对象存储服务的内置模块,与对象存储自身的元数据管理模块620共同工作,在对象存储内部实行元数据管理的快速索引功能。请求网关代理630用于接收和解析来着用户的调用请求,元数据管理模块将元数据查询、列表等操作通过索引模块来完成。元数据管理模块620在元数据发生新增、修改和删除时,同步更新索引模块630中的索引结构。
如图7所示,索引结构(索引关系网络)采用树的方式进行存储和管理,索引树(索引关系网络)由节点组成,索引树中的节点包含以下三种类型:(1)根节点:特殊的管理节点,为索引树的入口。(2)路径节点:路径节点是将对象名称(Key)按照指定的分隔符进行拆分之后,得到的中间分段生成。路径节点包括以下信息:名称,路径节点的名称为对象名称中的特定分段;对象节点指针:用于指向该路径下的对象节点链表,对象节点链表按对象名称的字母序进行排序;兄弟路径节点指针:用于指向同级别的下一个路径节点,共同构成兄弟路径节点链表,兄弟路径节点链表按节点名称的字母序排序;子孙路径节点指针:用于指向下一级路径节点链表。(3)对象节点:对象节点为索引树中的叶子节点。对象节点包含以下信息:对象名称:对象名称按指定分割符拆分之后的最后一个分段作为对象节点的名称;对象元数据信息,例如大小、修改时间、存储级别、etag(Entity tag,实体标签)等;兄弟对象指针:指向同级别的下一个对象节点,构成对象节点链表。
如图7所示,包括5个对象:/a/file-1、/a/file-2、/a/b1/file-3、/a/b2/file-4、/a/b3/file-5,使用/作为分割符,构造出的一个索引树。
第一个对象使用分隔符拆分之后得到三个分段/、a/和file-1,其中第一个分段等于分割符作为根节点,第二段为中间段,生成路径节点a/,第三段为最后一个分段,生成对象节点file-1;第二个对象使用分割符拆分之后得到三个分段/、a/和file-2,第一个分段等于分割符作为根节点,第二个分段为中间分段,生成路径节点a/,file-2为最后一个分段,生成对象节点file-2。file-2同file-1具有相同的父节点a/,二者排序之后构成路径节点a/的对象链表;第三个对象使用分隔符拆分之后得到4个分段/、a/、b1/和file-3,第一个分段等于分割符为根节点,第二个分段生成路径节点a/,第三个分段生成路径节点b1/作为路径节点a/的子孙节点,第四段为最后一个分段,生成对象节点file-3,为路径节点b1/的对象节点;第四个对象使用分割符拆分之后得到4个分段/、a/、b2/和file-4,第一个分段等于分割符为根节点;第二个分段生成路径节点a/;第三个分段生成路径节点b2/作为路径节点a/的子孙节点,节点b2/与节点b1/同为节点a/的子孙节点,b2/节点为b1/节点的兄弟,二者排序之后生成兄弟链表,也是节点a/的子孙链表;第四个分段file-4生成对象节点,为路径节点b2/的对象节点;第五个对象使用分割符拆分之后得到4个分段/、a/、b3/和file-5,第一个分段等于分割符为根节点,第二个分段生成路径节点a/,第三个分段生成路径节点b3/作为路径节点a/的子孙节点,与b2/节点、b1/节点排序之后构成兄弟链表,第四个分段file-5生成对象节点,为路径节点b3/的对象节点。
如图8所示,在索引树(索引关系网络)中插入存储对象,包括:
S801,使用预设的分隔符对对象名称(Key)进行拆分,得到路径分段;其中,预设的分隔符可以是一个,也可以是多个字符。当预设的分隔符中包含多个字符时,其中每个字符均可以将路径进行拆分成段。
S802,设置索引树的根节点为当前节点,从根节点开始查找;
S803,按顺序从路径分段中获取一个路径分段;
S804,判断当前的路径分段是否为最后一个分段;
S805,如果路径分段为最后一个分段,则创建对象节点,并按节点名称的字母序,插入到当前节点的对象链表中,处理结束;
S806,如果路径分段不是最后一个分段,则从当前节点开始查找名称等于该路径分段的路径节点;其中,查找顺序为当前节点及当前节点的子孙节点链表;
S807,判断路径节点是否存在;
S808,当路径节点已存在时,切换当前节点为该路径节点,重复S803;
S809,无法找到已存在的路径节点时,使用该路径分段创建一个新的路径节点,并按节点名称的字母序插入到当前节点的子孙链表,并切换当前节点为新创建的路径节点,重复S803。
如图9所示,从索引树中查找指定的索引对象,包括:
S901,使用预设的分隔符对对象名称(Key)进行拆分,得到路径分段。示例性地,分隔符可以是一个,也可以包含多个。当使用单一分隔符且分隔符为对象名称的第一个字符时,使用分隔符作为根节点的名称;当使用多个分隔符或者单一分隔符不能作为对象名称的第一个字符时,将根节点名称设置为空。
S902,设置索引树的根节点为当前节点,从根节点开始查找。
S903,按顺序从路径分段中获取一个路径分段。
S904,判断当前的路径分段是否为最后一个分段。
S905,如果路径分段为最后一个分段,则在当前节点的对象链表中搜索是否存在名称为该分段的对象节点,如果找到对象节点,则执行S906,返回查找成功的对象节点;否则执行S907,返回对象不存在。
S908,如果路径分段不是最后一个分段,则从当前节点及当前节点的子孙节点中查找是否存在名称等于该分段的路径节点。
当找到路径节点时,执行S909,切换当前节点为该路径节点,重复S903;当无法找到路径节点时,执行S907,返回对象不存在。
可选地,结合如图9所示的对象元数据查找流程,可以实现对象元数据的修改和删除流程。对于修改操作,通过上述查找流程,找到对应的对象节点,更新对象元数据即可;对于删除操作,首选通过上述查找流程找到对应的对象节点,对象链表中删除该对象节点;删除对象节点之后,还需要检查父节点的对象链表和子孙路径链表,如果均为空链表,则还需要回溯删除改路径节点;
如图10所示,在索引结构中列表指定路径前缀(prefix)列表对象和目录操作,包括:
S1001,使用预先设置的分隔符对请求查询的前缀进行拆分,得到前缀的路径分段;
S1002,设置索引树的根节点为当前搜索节点;
S1003,按顺序从S1001中得到前缀的路径分段取下一个分段;
S1004,判断路径分段是否为最后一个分段;如果当前分段不是最后一个分段执行S1005;否则执行S1008;
S1005,从当前节点的子孙路径节点链表中查找,判断是否找到名称为当前路径分段的路径节点,如果存在这一的路径节点,则执行S1006,将当前节点切换至该路径节点,继续S1003;否则,执行S1007,说明没有对象使用该前缀,反馈空的结果列表,处理结束。
S1008:归并遍历当前节点的对象链表和子孙路径链表,获取当前节点下的一个子对象节点或者子路径节点;
S1009,节点名称前缀是否匹配最后一个分段,如果二者不匹配,则继续S1008;否则执行S1010;
S1010,节点是否为对象节点;如果节点为对象节点,则执行S1011,将该对象添加至结果列表,下一步执行S1015;如果节点为路径节点,执行S1012;
S1012,是否请求要求返回子路径;如果列表请求要求返回子路径(使用分隔符查询),则执行S1013,将该路径节点添加至结果列表,下一步执行S1015;否则,执行S1014;
S1014,使用深度优先策略遍历以该节点为根的子树,将遍历到的对象节点添加至结果列表,直至遍历结束或者结果列表中的记录数达到上限,执行S1015;
S1015:检查结果列表中的记录是否达到上限,如果已达上限,则,执行S1016,返回结果列表,处理结束;否则,执行S1008,直至S1008中的归并遍历结束或者结果列表中的记录数达到上限,返回结果列表,处理结束。
可选地,上述S1008中的归并遍历操作的流程示意图如图11所示,包括:如图12所示的指针p1、p2;图12中1、2、3、4为对象链表的对象节点,a、b、c、d为路径链表的路径节点。
S1101,设置节点指针p1指向对象节点链表开始,p2指向路径节点链表开始。
S1102,按字母序比较p1节点名称和p2节点名称。
S1103,p1节点名称是否小于p2节点名称。
如果p1节点名称小于p2节点名称,则执行S1104;否则执行S1105。需要注意的是,如果p1指针已达到链表结尾,则返回p2节点直至p2指针达到链表结尾,反之亦然。
S1104,返回p1节点,并将p1指针移动到链表的下一个节点;
S1105,返回p2节点,并将p2指针移动到链表的下一个节点;
S1106,p1和p2是否均达到所指向链表的结尾。当p1和p2均达到所指向链表的结尾时,遍历完成;否则,返回S1102。
本实施例中,1.通过专门设计的索引结构可以大大提高元数据查询和列表的性能;可以在不修改对象存储核心模块的前提下,通过合理的配置和部署即可完成对象存储元数据查询和列表性能,同时减轻对象存储系统的业务符合;可以将索引方法应用于对象存储服务本身,可以提交对象存储系统元数据查询和列表的性能。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的元数据索引方法的元数据索引装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个元数据索引装置实施例中的具体限定可以参见上文中对于元数据索引方法的限定,在此不再赘述。
在一个示例性的实施例中,如图13所示,提供了一种元数据索引装置,包括:标识获取模块1310、索引字段获取模块1320和索引结果获取模块1330,其中:
标识获取模块1310,用于获取待索引的元数据索引对象的对象标识信息,并确定预先设置的字段拆分标识;
索引字段获取模块1320,用于在对象标识信息包含有字段拆分标识的情况下,根据字段拆分标识,对对象标识信息进行拆分,得到元数据索引对象的多个索引字段信息以及多个索引字段信息对应的索引层级;
索引结果获取模块1330,用于根据各索引字段信息、各索引字段信息分别对应的索引层级以及预先构建的索引关系网络,得到元数据索引对象的元数据索引结果。
在一个示例性的实施例中,索引结果获取模块包括当前节点获取单元、存在状态获取单元、元数据索引结果确定单元和索引结果不存在单元。
当前节点获取单元用于从索引关系网络中确定当前节点;并根据各索引字段信息分别对应的索引层级以及索引轮次,获取目标索引字段信息。存在状态获取单元用于获取目标索引字段信息在当前节点的存在状态。元数据索引结果确定单元用于在存在状态表征目标索引字段信息存在于当前节点的情况下,获取目标索引字段信息在当前节点中对应的子节点;根据目标索引字段信息对应的子节点,得到元数据索引结果。索引结果不存在单元用于在状态表征目标索引字段信息不存在于当前节点的情况下,元数据索引对象的元数据索引结果确认为索引结果不存在。
在一个示例性的实施例中,元数据索引结果确定单元包括子节点标识单元、目标元数据获取单元和当前节点更新单元。
子节点标识单元用于获取子节点的节点标识。目标元数据获取单元用于若目标索引字段信息为最后一个索引字段信息,且节点标识表征对象节点,则将子节点的元数据作为目标索引字段信息的目标元数据。当前节点更新单元用于若目标索引字段信息不为最后一个索引字段信息,且节点标识表征路径节点,则将子节点作为新的当前节点,并返回根据各索引字段信息分别对应的索引层级以及索引轮次,获取目标索引字段信息的步骤,直至目标索引字段信息为最后一个索引字段信息。
在一个示例性的实施例中,索引结果获取模块还包括当前节点确定单元、存在状态确定单元、子节点获取单元、新当前节点确定单元和元数据索引结果单元。
当前节点确定单元用于从索引关系网络中确定当前节点;并根据各索引字段信息分别对应的索引层级以及索引轮次,获取目标索引字段信息。存在状态确定单元用于在目标索引字段信息不为最后一个索引字段信息的情况下,获取目标索引字段信息在当前节点的存在状态。子节点获取单元用于在存在状态表征目标索引字段信息存在于当前节点的情况下,获取目标索引字段信息在索引关系网络中对应的子节点。子节点获取单元用于将子节点作为新的当前节点,并返回根据各索引字段信息分别对应的索引层级以及索引轮次,获取目标索引字段信息的步骤,直至目标索引字段信息为最后一个索引字段信息。元数据索引结果单元用于在目标索引字段信息为最后一个索引字段信息的情况下,根据当前节点包含的子节点和目标索引字段信息,确定的目标子节点,并根据目标子节点得到元数据索引对象的元数据索引结果。
在一个示例性的实施例中,元数据索引结果单元包括子节点标识获取单元、归并遍历单元和目标子节点单元。
子节点标识获取单元用于获取当前节点包含的子节点的节点标识;节点标识包括对象节点标识和路径节点标识。归并遍历单元用于根据对象节点标识和路径节点标识,对子节点进行归并遍历处理,得到候选子节点。目标子节点单元用于若候选子节点的节点名称与目标索引字段信息相匹配,则将候选子节点作为目标子节点。
在一个示例性的实施例中,元数据索引结果单元包括目标子节点标识单元、对象节点标识单元、路径节点标识单元和索引模式判断单元。
目标子节点标识单元用于确定目标子节点的节点标识;节点标识包括对象节点标识和路径节点标识。对象节点标识单元用于在目标子节点的节点标识为对象节点标识的情况下,将目标子节点确认为目标索引结果。路径节点标识单元用于在目标子节点的节点标识为路径节点标识的情况下,获取预设的索引模式。索引模式判断单元用于若索引模式为索引路径节点的第一索引模式,则将目标子节点确认为目标索引结果;若索引模式为索引对象节点的第二索引模式,则将目标子节点中包含的对象节点确认为目标索引结果。
在一个示例性的实施例中,装置还包括存储对象获取模块、存储对象标识拆分模块和索引关系网络构建模块。
存储对象获取模块用于获取多个元数据存储对象。存储对象标识拆分模块用于利用字段拆分标识,分别对各元数据存储对象的对象标识信息进行拆分,得到各元数据存储对象的拆分字段信息、以及各拆分字段信息对应的索引层级。索引关系网络构建模块用于根据各拆分字段信息和各拆分字段信息对应的索引层级,构建索引关系网络。
上述元数据索引装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个示例性的实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图14所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储索引关系网络数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种元数据索引方法。
本领域技术人员可以理解,图14中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要符合相关规定。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种元数据索引方法,其特征在于,所述方法包括:
获取待索引的元数据索引对象的对象标识信息,并确定预先设置的字段拆分标识;
在所述对象标识信息包含有所述字段拆分标识的情况下,根据所述字段拆分标识,对所述对象标识信息进行拆分,得到所述元数据索引对象的多个索引字段信息以及所述多个索引字段信息对应的索引层级;
根据各所述索引字段信息、各所述索引字段信息分别对应的索引层级以及预先构建的索引关系网络,得到所述元数据索引对象的元数据索引结果。
2.根据权利要求1所述的方法,其特征在于,所述根据各所述索引字段信息、各所述索引字段信息分别对应的索引层级以及预先构建的索引关系网络,得到所述元数据索引对象的元数据索引结果,包括:
从所述索引关系网络中确定当前节点;并根据各所述索引字段信息分别对应的索引层级以及索引轮次,获取目标索引字段信息;
获取所述目标索引字段信息在所述当前节点的存在状态;
在所述存在状态表征所述目标索引字段信息存在于所述当前节点的情况下,获取所述目标索引字段信息在所述当前节点中对应的子节点;根据所述目标索引字段信息对应的子节点,得到所述元数据索引结果;
在状态表征所述目标索引字段信息不存在于所述当前节点的情况下,所述元数据索引对象的元数据索引结果确认为索引结果不存在。
3.根据权利要求2所述的方法,其特征在于,所述根据所述目标索引字段信息对应的子节点,得到所述元数据索引结果,包括:
获取所述子节点的节点标识;
若所述目标索引字段信息为最后一个索引字段信息,且所述节点标识表征对象节点,则将所述子节点的元数据作为所述目标索引字段信息的目标元数据;
若所述目标索引字段信息不为最后一个索引字段信息,且所述节点标识表征路径节点,则将所述子节点作为新的当前节点,并返回所述根据各所述索引字段信息分别对应的索引层级以及索引轮次,获取目标索引字段信息的步骤,直至所述目标索引字段信息为最后一个索引字段信息。
4.根据权利要求1所述的方法,其特征在于,所述根据各所述索引字段信息、各所述索引字段信息分别对应的索引层级以及预先构建的索引关系网络,得到所述元数据索引对象的元数据索引结果,还包括:
从所述索引关系网络中确定当前节点;并根据各所述索引字段信息分别对应的索引层级以及索引轮次,获取目标索引字段信息;
在所述目标索引字段信息不为最后一个索引字段信息的情况下,获取所述目标索引字段信息在所述当前节点的存在状态;
在所述存在状态表征所述目标索引字段信息存在于所述当前节点的情况下,获取所述目标索引字段信息在所述索引关系网络中对应的子节点;
将所述子节点作为新的当前节点,并返回所述根据各所述索引字段信息分别对应的索引层级以及索引轮次,获取目标索引字段信息的步骤,直至所述目标索引字段信息为最后一个索引字段信息;
在所述目标索引字段信息为最后一个索引字段信息的情况下,根据所述当前节点包含的子节点和所述目标索引字段信息,确定的目标子节点,并根据所述目标子节点得到所述元数据索引对象的元数据索引结果。
5.根据权利要求4所述的方法,其特征在于,所述根据所述当前节点包含的子节点和所述目标索引字段信息,确定的目标子节点,包括:
获取所述当前节点包含的子节点的节点标识;所述节点标识包括对象节点标识和路径节点标识;
根据所述对象节点标识和所述路径节点标识,对所述子节点进行归并遍历处理,得到候选子节点;
若所述候选子节点的节点名称与所述目标索引字段信息相匹配,则将所述候选子节点作为所述目标子节点。
6.根据权利要求4所述的方法,其特征在于,所述根据所述目标子节点得到所述元数据索引对象的元数据索引结果,包括:
确定所述目标子节点的节点标识;所述节点标识包括对象节点标识和路径节点标识;
在所述目标子节点的节点标识为所述对象节点标识的情况下,将所述目标子节点确认为目标索引结果;
在所述目标子节点的节点标识为所述路径节点标识的情况下,获取预设的索引模式;
若所述索引模式为索引路径节点的第一索引模式,则将所述目标子节点确认为所述目标索引结果;若所述索引模式为索引对象节点的第二索引模式,则将所述目标子节点中包含的对象节点确认为所述目标索引结果。
7.根据权利要求1所述的方法,其特征在于,所述根据各所述索引字段信息、各所述索引字段信息分别对应的索引层级以及预先构建的索引关系网络,得到所述元数据索引对象的元数据索引结果之前,还包括:
获取多个元数据存储对象;
利用所述字段拆分标识,分别对各所述元数据存储对象的对象标识信息进行拆分,得到各所述元数据存储对象的拆分字段信息、以及各所述拆分字段信息对应的索引层级;
根据各所述拆分字段信息和各所述拆分字段信息对应的索引层级,构建所述索引关系网络。
8.一种元数据索引装置,其特征在于,所述装置包括:
标识获取模块,用于获取待索引的元数据索引对象的对象标识信息,并确定预先设置的字段拆分标识;
索引字段获取模块,用于在所述对象标识信息包含有所述字段拆分标识的情况下,根据所述字段拆分标识,对所述对象标识信息进行拆分,得到所述元数据索引对象的多个索引字段信息以及所述多个索引字段信息对应的索引层级;
索引结果获取模块,用于根据各所述索引字段信息、各所述索引字段信息分别对应的索引层级以及预先构建的索引关系网络,得到所述元数据索引对象的元数据索引结果。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311571760.3A CN117851341A (zh) | 2023-11-23 | 2023-11-23 | 元数据索引方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311571760.3A CN117851341A (zh) | 2023-11-23 | 2023-11-23 | 元数据索引方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117851341A true CN117851341A (zh) | 2024-04-09 |
Family
ID=90527854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311571760.3A Pending CN117851341A (zh) | 2023-11-23 | 2023-11-23 | 元数据索引方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117851341A (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102893281A (zh) * | 2010-05-14 | 2013-01-23 | 日本电气株式会社 | 信息搜索设备、信息搜索方法、计算机程序和数据结构 |
US20170337229A1 (en) * | 2016-05-19 | 2017-11-23 | Oracle International Corporation | Spatial indexing for distributed storage using local indexes |
CN108228657A (zh) * | 2016-12-22 | 2018-06-29 | 沈阳美行科技有限公司 | 一种关键字检索的实现方法及装置 |
CN114238548A (zh) * | 2021-11-25 | 2022-03-25 | 上海序言泽网络科技有限公司 | 索引用存储系统、方法、电子设备和可读存储介质 |
CN114780515A (zh) * | 2022-04-06 | 2022-07-22 | 深圳市汉云科技有限公司 | Elasticsearch数据库的数据迁移方法、装置、设备及存储介质 |
CN115114296A (zh) * | 2022-07-06 | 2022-09-27 | 中国人民解放军陆军军医大学第一附属医院 | 一种基于TemplateB+Tree的索引结构布局方法 |
CN115599295A (zh) * | 2022-09-27 | 2023-01-13 | 联想(北京)有限公司(Cn) | 一种存储系统的节点扩容方法和装置 |
CN115729752A (zh) * | 2021-08-27 | 2023-03-03 | 哲库科技(上海)有限公司 | 一种寄存器检查方法及装置、存储介质 |
CN116561181A (zh) * | 2023-06-20 | 2023-08-08 | 金蝶蝶金云计算有限公司 | 数据查询方法、装置、计算机设备及计算机可读存储介质 |
CN116775695A (zh) * | 2023-06-25 | 2023-09-19 | 探探科技(北京)有限公司 | 一种基于索引的动态组合查询优化方法、装置和存储介质 |
-
2023
- 2023-11-23 CN CN202311571760.3A patent/CN117851341A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102893281A (zh) * | 2010-05-14 | 2013-01-23 | 日本电气株式会社 | 信息搜索设备、信息搜索方法、计算机程序和数据结构 |
US20170337229A1 (en) * | 2016-05-19 | 2017-11-23 | Oracle International Corporation | Spatial indexing for distributed storage using local indexes |
CN108228657A (zh) * | 2016-12-22 | 2018-06-29 | 沈阳美行科技有限公司 | 一种关键字检索的实现方法及装置 |
CN115729752A (zh) * | 2021-08-27 | 2023-03-03 | 哲库科技(上海)有限公司 | 一种寄存器检查方法及装置、存储介质 |
CN114238548A (zh) * | 2021-11-25 | 2022-03-25 | 上海序言泽网络科技有限公司 | 索引用存储系统、方法、电子设备和可读存储介质 |
CN114780515A (zh) * | 2022-04-06 | 2022-07-22 | 深圳市汉云科技有限公司 | Elasticsearch数据库的数据迁移方法、装置、设备及存储介质 |
CN115114296A (zh) * | 2022-07-06 | 2022-09-27 | 中国人民解放军陆军军医大学第一附属医院 | 一种基于TemplateB+Tree的索引结构布局方法 |
CN115599295A (zh) * | 2022-09-27 | 2023-01-13 | 联想(北京)有限公司(Cn) | 一种存储系统的节点扩容方法和装置 |
CN116561181A (zh) * | 2023-06-20 | 2023-08-08 | 金蝶蝶金云计算有限公司 | 数据查询方法、装置、计算机设备及计算机可读存储介质 |
CN116775695A (zh) * | 2023-06-25 | 2023-09-19 | 探探科技(北京)有限公司 | 一种基于索引的动态组合查询优化方法、装置和存储介质 |
Non-Patent Citations (2)
Title |
---|
JAMES ABELLO ET AL.: "Hierarchical graph indexing", 《CIKM\'03》, 3 November 2003 (2003-11-03), pages 453 - 460, XP058365248, DOI: 10.1145/956863.956948 * |
佘雄雄: "基于B+树的非易失性高效索引结构研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 10, 15 October 2022 (2022-10-15), pages 137 - 60 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110275884B (zh) | 数据存储方法及节点 | |
CN108959244B (zh) | 地址分词的方法和装置 | |
JP2020091902A (ja) | 分散型データストアのバージョン化された階層型データ構造 | |
US20150293958A1 (en) | Scalable data structures | |
CN113010476B (zh) | 元数据查找方法、装置、设备及计算机可读存储介质 | |
CN109086434B (zh) | 一种基于主题图的知识聚合方法及系统 | |
WO2014110940A1 (en) | A method, apparatus and system for storing, reading the directory index | |
CN113282799B (zh) | 节点的操作方法、装置、计算机设备和存储介质 | |
CN111045860A (zh) | 在同步的基于复合部分的数字资产内改进冲突解决方案 | |
Gui et al. | IFC-based partial data model retrieval for distributed collaborative design | |
WO2023179787A1 (zh) | 分布式文件系统的元数据管理方法和装置 | |
US20200012643A1 (en) | Method for managing and executing decoders and transformations using linked data and a service layer | |
Liu et al. | Multi-fuzzy-constrained graph pattern matching with big graph data | |
CN114625696A (zh) | 文件恢复方法、装置、电子设备及存储介质 | |
de Souza Baptista et al. | NoSQL geographic databases: an overview | |
CN105843809B (zh) | 数据处理方法和装置 | |
CN115705313A (zh) | 一种数据处理方法、装置、设备及计算机可读存储介质 | |
CN111625728B (zh) | 一种网页文档生成检索目录的方法、装置、设备和介质 | |
CN116150436B (zh) | 一种基于节点树的数据展示方法与系统 | |
CN113297171A (zh) | 数据库迁移方法及装置、数据库集群 | |
CN114579061B (zh) | 一种数据存储方法、装置、设备及介质 | |
CN117851341A (zh) | 元数据索引方法、装置、计算机设备和存储介质 | |
CN116414935A (zh) | 一种基于Elastic Search的分布式搜索空间矢量数据的方法 | |
CN116127154A (zh) | 知识标签推荐方法、装置、电子设备及存储介质 | |
CN115687560A (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 |