CN101326522B - Xml的简明索引结构 - Google Patents
Xml的简明索引结构 Download PDFInfo
- Publication number
- CN101326522B CN101326522B CN2006800461478A CN200680046147A CN101326522B CN 101326522 B CN101326522 B CN 101326522B CN 2006800461478 A CN2006800461478 A CN 2006800461478A CN 200680046147 A CN200680046147 A CN 200680046147A CN 101326522 B CN101326522 B CN 101326522B
- Authority
- CN
- China
- Prior art keywords
- value
- tlv triple
- node
- succinct
- key
- 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.)
- Expired - Fee Related
Links
Images
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/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/81—Indexing, e.g. XML tags; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
简明数据和索引结构旨在将存储容量的约束设置为接近理论最优值的同时使得对任意数据进行更新和搜索操作的效率最大化。本发明的简明索引结构对利用层次结构表示的数据编索引。索引包括以所有不同根-叶路径作为键标或以特异元素标记名作为键标的符号表,其中在符号表中,键标的条目具有与该键标相关联的节点的经转换的拓扑信息(图22)及对该拓扑信息采用的转换方法的指示(图17),并且所采用的转换方法取决于与该键标相关联的节点之间的拓扑关系。本发明还涉及用于构造、使用和更新简明索引结构的方法、计算机系统和计算机软件。
Description
相关申请的交叉引用
本申请要求已于2005年12月6日提出的澳大利亚临时专利申请No.2005906846的优先权,上述申请的公开内容被整体合并于此作为引用参考。
技术领域
简明数据和索引结构旨在将存储容量的约束设置为接近理论最优值的同时使得对任意数据进行更新和搜索操作的效率最大化。更具体地说,本发明涉及简明索引结构(succinct index structure)、使用简明索引结构的方法、构造简明索引结构的方法、用于执行构造简明索引结构的方法的计算机应用程序、以及用于构造和使用简明索引的计算机系统。
背景技术
扩展标记语言(XML)数据与传统关系数据的主要区别在于,关系数据使用二维表进行组织而XML数据以具有层次结构的树进行组织。
例如,下面给出短片断的XML:
<a>
<b><c>d</c></b>
<b><c>e</c></b>
<b><c>f</c></b>
</a>
这可由如图1所示的层次树来表示。
虽然存在若干用于有效处理XML查询的树-遍历方法,不过基于集合的查询处理(传统的关系数据库)也是令人满意的。例如,当处理大型XML文档的查询时,使用基于遍历的方法来执行查询处理可能是困难的且运行时间很长。
在关系数据库管理系统中,通过在基于集合处理中生成和利用数据库索引能够提高查询性能,其中该数据库索引返回中间结果。然而,对不依赖关系数据库而存在的XML数据进行基于集合的查询处理存在一些缺点。造成这些缺点的原因是,在查询任何节点时,都需要查询任意两个XML节点之间的拓扑关系。
XML查询可以由多个路径表达式组成。路径表达式可以包含其结果节点必须满足的拓扑关系。例如,路径表达式/a[b]/c搜索以c作为其节点标签且具有带标签a的父节点和带标签b的同属节点的所有节点。为了有效应答任何种类的先辈/后辈查询,需要结构连接操作。结构连接操为下列技术的名称:给定可能的先辈节点列表和可能的后辈节点列表,则可确定列表的节点之间的先辈-后辈关系。
索引经常可供查找满足特定标签的节点的集合。生成和维护包括确定拓扑关系所需的编码方案的索引可能很昂贵。最普通的编码方案使用起始-结束-深度三元组(start-end-depth triplet)、前序-后序-深度三元组(preorder-postorder-depth triplet)或Dewey编码。给定具有n个节点的XML文档,则至少需要logn位来表示三元组内的每个数。如果索引返回与文档大小成比例的节点集合,那么需要至少O(nlogn)位来恰当表示这样的集合。已知的是,仅需要2n+o(n)个位以简明地表示整个拓扑。因此,这样的索引(依赖这些最普通的编码方案)基本上占用比原来的文档本身更多的空间,从而极大地限制了索引的有用性。
发明内容
在第一方面,本发明提供一种为以层次结构表示的数据编索引的简明索引结构,所述索引结构包括一符号表,该符号表以所有不同根-叶路径作为键标或以特异元素标记名作为键标,其中在所述符号表中,针对一键标的条目具有与该键标相关联的节点的经转换的拓扑信息及对所述拓扑信息采用的转换方法的指示,并且所采用的转换方法取决于与该键标相关联的节点之间的拓扑关系。
所述拓扑信息可以包括针对每个节点的三元组编码方案。所述三元组编码方案可以为起始-结束-深度三元组编码方案或为前序-后序-深度三元组编码方案。所述三元组可以采用树遍历次序的形式。
所述层次结构可以为可扩展标记语言(XML)。
所述转换方法可以包括对所述拓扑信息进行差分编码,例如,对所述列表中的每个三元组中的每个值进行差分编码。所述三元组的第一差分编码值可以为连续三元组的起始位置的差。若给定每个节点的起始位置和结束位置之间的差,则所述三元组的第二差分编码值可以为连续三元组的这些值之间的差。第三差分编码值可以为连续三元组的深度的差。
所述转换方法的信息可以包括一替换值,该替换值用来替换与所述键标相关联的每个节点的三元组的第一值、第二值和第三值中的每一值。
所述转换方法的信息可以包括直方图的形状的指示,其中所述直方图绘出了所有节点的三元组的第一值、第二值和第三值中的每一值。
所述转换方法的信息可以包括模式函数,所述模式函数输出与所述键标相关联的所有节点的三元组的第一值、第二值或第三值。
所述转换方法的信息可以指示所述经转换的拓扑信息与所述拓扑信息相同。
所述针对一键标的条目可以具有多种用于转换所述拓扑信息的方法。针对与所述键标相关联的所有节点的三元组的第一值、第二值和第三值中的每一值可以采用一种方法。
所述经转换的拓扑信息以可更新的压缩形式被存储。
所述拓扑信息可以从简明数据结构中得出。所述简明数据可以包括拓扑层(层0),所述拓扑层使用对称括号表示来表示节点的嵌套。也就是说,对树的前序遍历在遇到开始标记时输出一位(左括号)并在遇到结束标记时输出相反位(右括号)。
在第二方面,本发明提供一种使用所述简明索引结构的方法,该方法包括以下步骤:
在所述符号表中定位所需的键标;并且
基于用来转换与该键标相关联的节点的拓扑信息的转换方法,对所述经转换的拓扑信息进行再转换,来检索与所述键标相关联的所有节点的拓扑信息。
所述简明索引结构用于处理结构连接查询。
在第三方面,本发明提供一种为以层次结构表示的数据构造简明索引的方法,所述方法包括以下步骤:
1、以树遍历次序解析所述数据来生成节点的拓扑编码列表,并且针对与不同根-叶路径或特异元素标记名相关联的节点,评定这些节点之间的拓扑关系;
2、根据所述评定,对与所述不同根-叶路径或特异标记名相关联的节点的该拓扑编码列表进行转换;并且
3、在一以所述不同根-叶路径或特异标记名作为键标的符号表中生成一条目,该条目由与所述键标相关联的经转换的拓扑信息及所采用的转换方法的指示组成。
所述解析的步骤可以包括对所述树进行遍历来生成拓扑编码列表,该拓扑编码列表存储于可扩展数组中。所述拓扑编码列表可以包括针对每个节点的三元组编码方案。所述三元组编码方案可以为起始-结束-深度三元组编码方案。
一旦所述可扩展数组达到预定的块大小,则所述方法可以进一步包括:继续生成所述拓扑编码列表并将其存储在新块的可扩展数组中。
在生成所述拓扑编码列表之后,对如上所述拓扑列表进行差分再编码。所述方法可以进一步包括执行群集算法,并且如果确定了多个群集,则所述块被分成每个群集的较小的块。
所述转换方法的信息可以包括:如上所述地那样替换值、绘出所述值或生成模式函数。
在第四方面,本发明提供一种用于执行为以层次结构表示的数据构造简明索引的方法的计算机软件应用程序。
在第五方面,本发明提供一种为以层次结构表示的数据构造简明索引的计算机系统,所述计算机系统包括:
处理装置,其以树遍历次序解析所述数据来生成节点的拓扑编码列表,以及针对与不同根-叶路径或特异元素标记名相关联的节点,评定这些节点之间的拓扑关系,并且根据所述评定,对与所述不同根-叶路径或特异标记名相关联的节点的该拓扑编码列表进行转换;以及
存储装置,其用于存储带有一以不同根-叶路径或特异元素标记名作为键标的条目的索引,该条目由与该键标相关联的经转换的拓扑信息及所采用的转换方法的信息组成。
所述存储装置可以为还存储一计算机软件应用程序的计算机可读存储介质,所述计算机软件应用程序可操作地执行如上所述的为以层次结构表示的数据构造简明索引的方法。所述计算机系统为诸如PDA、移动电话或膝上型电脑之类的便携式计算机。
在第六方面,本发明提供一种使用如上所述的以层次结构表示的数据的简明索引的计算机系统,所述计算系统包括:
存储装置,其用于存储所述简明索引;以及
处理装置,其用于在所述符号表中定位所需的键标,并且基于用来转换与该键标相关联的节点的拓扑信息的转换方法,对所述经转换的拓扑信息进行再转换,来检索与所述键标相关联所有节点的拓扑信息。
所述存储装置可以为还存储一计算机软件应用程序的计算机可读存储介质,所述计算机软件应用程序可操作地执行如上所述的使用以层次结构表示的数据的简明索引方法。
所述计算机系统可以进一步包括用于例如通过因特网从远程设备接收数据处理请求的通信装置。
所述计算机系统或远程设备可以为诸如PDA、移动电话或膝上型电脑之类的便携式计算机。
索引是获取数据的拓扑结构的空间有效方式,并且能够使结构连接在XML数据上有效实现。在处理XML数据时,在表示中间结果集合(以及最终结果集合)时要占用大量的内存使用量。当内存空间紧张时,查询性能由于额外的磁盘I/O操作而明显恶化。利用本发明的索引,中间结果集合以简明形式表示,并且能够用于有效地执行结构连接操作。
附图说明
现在将参考附图描述本发明的示例,其中:
图1示出XML文档摘录的层次表示(现有技术);
图2为可用于本发明的计算机系统的示意图;
图3提供拓扑存储层的总体示意图;
图4示出另外的XML文档摘录的层次表示;
图5示出图4中摘录的对称括号编码;
图6示出存储空间在使用基于指针的方法情况下和使用对称括号方法情况下的差别;
图7为示出根根据综合简明系统的存储XML文档的方法的流程图;
图8为示出根据本发明的构造索引的方法的流程图;
图9、图10和图11为示出基于所有b节点的拓扑编码列表的差分值的直方图;
图12至图25示出根据本发明的生成图12中所示XML文档的简明索引的方法。
具体实施方式
图3为示出本发明的实施例可以赖以实现的计算机系统4的框图。台式计算机6和PDA或移动设备8皆为可以用于本发明的计算机示例。两个设备都具有如现有技术中通常所理解的必要的处理、存储、通信、输入和输出装置。
为了使用本发明,设备6和8均需要使用软件应用程序10来访问本发明的简明索引。在本示例中,设备6和8可以具有在计算机6和8上本地存储在各自存储装置上的索引12。然而,诸如PDA 8之类的设备可能具有更低的处理和存储容量并可以利用互联网12来访问简明索引12。也就是说,所有的索引12和相关联的处理16、索引12和软件18可以相对PDA 8远程存储。
软件(或远程登录软件)10可以(以本地或远程方式)控制处理器以执行查询引擎16所需要的处理。查询引擎16使用简明索引12以便解答在设备8和10输入的查询。简明索引12(以本地或远程方式)存储在存储器中,并且按照以下所详细描述地被生成和更新。本发明的简明索引12由索引指示器软件组件18生成。该组件18直接将一定范围内的信息,例如,XML文档20和第三方数据库22,作为输入进行编索引。或者,可以利用简明编码器24对XML文档20和第三方数据库22进行编码,其中简明编码器24将数据转换成简明形式然后存储在26。索引指示器18还能够接受此简明形式作为输入来形成简明索引12。另外的软件为简明访问器28,其能够对简明数据库DBMS 26进行解释以便为设备6或8提供查询结果,或者供处理器在查询处理16期间使用。
查询可以返回在简明数据库26中存储的记录。为了向计算机8或10返回这些结果,可以通过查询引擎16使用另外的软件应用程序28来访问和解释简明数据库26。或者,计算机8或10可以使用简明访问器软件28来直接访问和解释简明数据库26。
现在将描述综合简明(ISX,Integrated Succinct)系统的简明存储层26。ISX包含三层,也就是,拓扑层、内节点层和叶节点层。图3示出这些层的总体图。
拓扑层存储XML文档的树结构并且方便快速导航访问、结构连接和更新。内节点层存储用于快速查询的测试数据的XML元素、属性和签名。最后,叶节点层存储文档的文本数据。文本数据可以通过各种常见压缩技术被压缩,并供拓扑层引用。
这里集中描述拓扑层。与先前的方法不同,拓扑层的表示不使用指针。它基于支持有效节点导航和更新的对称括号编码。
在层0(Tier 0)中使用的对称括号编码反映任何XML文档内的元素节点的嵌套,并能够通过对树的前序遍历获得。在遍历期间,当遇到开始标记时输出左括号,当遇到结束标记时输出右括号。
例如,给定图4中所示的XML文档摘录,则会如图5所示地对层0的对称括号编码进行存储。括号下方的箭头指示括号对。为了清楚起见,省略了按位操作的实施细节,并将单个位(括号)像一个对像一样来对待。
多余量是在拓扑的给定部分出现的左括号和右括号间的数量差。例如,在图5中,dblp的左括号和@mdate的右括号之间的多余量为2。文本节点“2003”的右括号和booktitle的左括号之间的多余量为-1。在XML文档树中节点x的深度可以通过查找x的左括号和文档的起点之间的多余量计算出来。例如,在图5中,author的左括号的深度为3。
该编码方法有若干有益效果。首先,拓扑特性(深度、起始位置/结束位置、前序数/后序数)、拓扑关系(先辈/后辈、文档次序)、文档遍历、DOM导航和XPath轴都可以利用上述括号表示来确定。再者,可以通过仅使用小集合的物理运算符来简化数据库。
之所以避免采用任何基于指针的方法来将括号连接至其标签是因为这将使空间的占用量从2n=O(n)增加到不太令人满意的Θ(nlgn)=O(nlgn)。这在图6中以图的形式示出。
将参见图7的流程图和以下的示例XML文档摘录描述ISX系统的另外示例:
<a>
<b><c>d</c></b>
<b><c>e</c></b>
<b><c>f</c></b>
</a>
实际上,XML文档与这里讨论的摘录相比会大很多。利用对称括号,该文档可以表示30为:
(a
(b(c(d)))
(b(c(e)))
(b(c(e)))
)
因此,使用对称括号的XML文档摘录的拓扑将如此表示:
(((()))((()))((())))
在存储器中用二进制位0表示左括号且在存储器中用二进制位1表示右括号。此后,层次结构将如此存储在存储器中32:
00001110001110001111
因此,每个0表示新节点的开始,每个01组合表示转换,例如叶节点。
利用该系统,任何文档的存储空间为2n个位(其中n为节点的数目)。
当然,步骤30和步骤32可以作为一个单独的步骤来执行。此外,毫无疑问,位的使用是可以互换的,以便用1位表示左括号而用0位表示右括号。
现在将下列摘录(重复以上的)与节点的标签(label)和每个位的编号位置(number position)垂直对齐。
abcd---bce---bcf----(标签)
0000111000 1110001111(bp)
0123456789 0123456789(位置)
这里可以看出节点<a>位于位置0而第三节点<b>位于位置13。
现在可以利用拓扑的位表示来对块(block)执行查询。例如,查询可以是“位置13的节点的父节点位于什么位置?”
由于已知括号成对出现,所以如果回溯扫描块直到存在0比1多两个时,那么就找到了父节点的位置,可以发现在此例中父节点的位置为位置0。
该文档的位表示最初被分成特定大小的块34。例如,上面讨论的摘录被分成两个块:
0000111000
0123456789
和
1110001111
0123456789
对各个块进行概括36来生成包括层1的三元组。针对每个块计算下面的信息:
·块中0的数目
·块中1的数目
·向前最大差,也就是说,在从左向右扫描块时计算当前和(runningsum),从当前和的值为0开始,每遇到一个0位,当前和被加1,每遇到一个1位,当前和被减1。在块的任何位置,当前和所达到的最高值被当作向前最大差。
·向前最小差,也就是说,与上面一样计算当前和。在块的任何位置,当前和所达到的最小值被当作向前最小差。
·向后最大差,也就是说,与上述关于向前最大差一样计算当前和,但是改为从右向左对块进行扫描。
·向后最小差,也就是说,与上面关于向前最小差一样计算当前和,但是改为从右向左对块进行扫描。
·节点的数目,也就是说,在块中找到01组合的次数。对于最后一位,可以检查后一块的位(或者可替代地,假设选择的方法连贯一致的话,则可以检查前一块的最后一位)。
因此,对于块0000111000,概括信息表现为(7,3,4,1,4,0,2)。
而对于块1110001111,概括信息表现为(3,7,0,-4,-1,-4,1)。
利用该概括信息,现在可以基于以上两个层1三元组的示例来描述DOM查询。例如,采用如以上“位置13的节点的父节点位于什么位置?”进行相同的查询。
可以向后扫描直到始于位置13的位的块的开始。从位置13到该块的开始存在下列位1110。0的数目为1而1的数目为3。从1的数目中减去0的数目得到-2。现在从前一块中得到向后最大差值为4,并将其加上-2,得到数2。现在从这可以知道匹配的位在前一块。
当文档很大时,重复生成层1的概括元组的过程38,此次基于层1的数据生成层2。两层通常足够用于所有情况。再次将层1元组分成块并生成另外的元组来生成层2。
这个表示XML文档的拓扑信息的方法节省空间,具有位于常系数的理论最小值范围内的空间需求。对于常数e,其中1<=e<=2,以及有n个节点文档,需要2en+o(en)个位来表示XML文档的拓扑(2n)连同概括信息(o(en))。平均起来可以以固定的次数处理节点的插入,但最差情况为O(lg2n)次,而所有节点导航操作最差情况进行次,但平均起来为常数次。针对数据处理所要的原操作(primitive operation),这种表示拓扑信息的方法还可以保持低的访问和更新成本。它还支持以接近常数次进行导航操作。
为了帮助快速检查用来表示XML文档的0和1,可以构造简明索引结构(SIS,Succinct Index Strcture)12。该索引提供更高效的查询文档的方式。
SIS由具有所有不同根-叶路径(distinct root-to-leafpath)或标记名的条目的符号表构成。例如,对于图1中的XML文档摘录,不同根-叶路径为{/a、/a/b、/a/b/c},而不同标记名为{a、b、c}。
符号表的每个条目具有一些统计信息以及实际索引(已知作为原始索引(raw index)),其方便对所有由它的相应路径或标记名组成的标记的实例进行定位。统计信息控制原始索引的转换。它包括关于标记名的普及以及查询和更新的频率的信息。
原始索引的转换针对空间使用、查询性能以及更新成本提供有益的折衷。转换方法根据在任何给定时刻都最适合给定XML文档的方法作用于多个原始索引。
在块中,依据节点集合大小、查询和更新的频率,原始索引由下列数据结构中的一个或多个组成:
·全拓扑编码列表(Full topological encoding list):它由原始形式的三元组列表(起始、结束和深度)组成,其中每个三元组对节点的拓扑信息进行编码。不使用任何压缩格式对该列表进行存储。该数据结构出现在被编索引的XML文档内发生更新的地方。它还出现在新生成的三元组并未创建整个块的原始索引的末端。
·节点标识符列表(Node identifier list):它是全拓扑编码列表的另一种形式,具有通过层(例如层0、层1和层2)间接得出的三元组(起始、结束和深度)内的三个值,并使用了永久的节点标识符。当主要关心的是空间时或者得出所述值的性能开销远优于加载元组的性能开销时使用该表。
·位数组特征位(Bit array flag):它是节点标识符列表的另一种形式,其中节点标识符的总数在XML文档内的节点的总数的常数差范围内。
·部分拓扑编码列表(Partial topological encoding list):不具有显式节点标识符的数据结构,三元组内的起始值也可以作为(非永久)标识符。这里仅存储起始值而不是整个三元组。
·差分、全拓扑编码列表(Differential,full topological encoding list):该数据结构是将全拓扑编码列表的完整块发送至第二管线以生成概括的结果。该概括由三个直方图组成,每个直方图表示连续三元组的起始、结束和深度间的差分值之间的关系。该概括指定用于对带有固定大小值到可变大小值的三元组进行编码的编码方法。作为编码结果的三元组的列表紧接着该概括进行存储。
·差分节点标识符列表(Differential node identifier list):它以与差分、全拓扑编码列表类似的方式存储节点标识符的差分值的直方图。
·差分部分拓扑编码列表(Differential partial topological encodinglist):它以与差分、全拓扑编码列表类似的方式存储部分拓扑编码列表。
·模式描述符函数(Pattern descriptor function):当文档的规则是严格的并且三元组的差分值为常数时,可以丢弃整个全拓扑编码列表并且替换为基于该规则和前一个起始值、结束值和深度值分别返回下一个起始值、结束值和深度值的函数。注意到的是,这些模式函数不受更新(例如,当新的节点被插入列表时)的影响。
一旦通过三个管线,其中每个管线将前一管线的输出作为输入,就通过解析XML文档构造出了索引。第一管线遍历XML文档并生成表示为列表的XML文档的拓扑编码的自然集合(naive set)。第二管线确定拓扑编码列表的最优差分编码。最后,第三管线从差分编码列表生成模式描述符。这里假设,给定节点,则数据库能够以固定的次数检索拓扑编码。
现在参见图8的流程图更详细地描述构造索引的方法。
首先,遍历XML文档的简明表示并生成自然拓扑编码列表50。
拓扑编码列表由三元组的列表组成,其中,每个三元组表示单个节点的拓扑信息。也就是说,对于XML文档中的每个节点,计算三种类型的编码号码来生成三元组。每个三元组的编码号码表示:
起始该节点的0(左括号)的位位置
结束该节点的1(左括号)的位位置
深度,也就是说,节点沿树向下的距离或节点在树上的哪一级。
这些三元组之间具有描述XML文档的拓扑结构的隐含关系。0的位位置与每个节点的前序号码相同,因此可能与深度一起重新构造树。然而,没有1的位位置,会太耗费时间以至不能答复两个节点之间的先辈-后辈关系。
基于图1中示出的XML文档,处理以下查询:
//b//c[text()=“e”]
也就是说,节点b是否具有后辈c且具有文本“e”?可以利用SIS获得答复。
索引返回所有b、所有c以及所有“e”。然后确定返回的节点之间的结构关系以确保它们以正确的父/后辈方式相联系。为了这样做,需要使用为每个节点计算的三元组。
例如
abcd---bce---bcf----(标签)
00001110001110001111(bp)
01234567890123456789(位置)
从该信息可以确定结构关系。这里,已知节点a的第一0位具有起始位位置0且节点a的最后1位具有位置19。同样,已知第二节点b的第一0位具有起始位位置7并且节点b的最后1位具有位置12。
因此,如果节点b为节点a的后辈,那么a的起始位置应该小于b的起始位置(0<7)。另外,b的结束位置应该小于a的结束位置(12<19)。
以下是基于上述三元组的图1的XML文档摘录的拓扑编码列表。
b(1,6,1)(7,12,1)(13,18,1)
c(2,5,2)(8,11,2)(14,17,2)
“e”(9,10,3)
例如,为答复与以上//b//c[text()=“f”]相同的查询,需要检索以上三个拓扑编码列表,先将c列表与“e”列表相匹配,并返回c列表内作为“e”内任何三元组的父辈所有三元组。对于三元组c2:(8,11,2)和“e”1:(9,10,3),c2.start(8)<“e”1.start(9)且c2.end(11)>“e”1.end(10)以及c2.depth(2)+1=“e”1.depth(3),因此c2:(8,11,2)在可能答复的列表内。
其次将新生成的列表与b列表相匹配并过滤掉不属于任何b三元组的子辈的三元组。对于b2:(7,12,1),b2.start(7)<c2.start(8)且b2.end(12)>c2.end(11)以及b2.depth(1)+1=c2.depth。由于c2满足该测试,所以它就是答复。
仅在列表中的节点数目少或者该列表占整个n节点文档的百分比小的情况下保持全拓扑编码列表,例如,索引中从O(lgn)个节点直到O(n/lg2n)个节点的范围。以一种被称为可扩展数组的特定数据结构来保存该拓扑编码列表。需要注意的是,必须根据其相关文档次序,即节点集合中每个节点的前序值,对节点集合进行分类。
一旦达到阚值,可以考虑在可扩展数组的那部分包括块。将包括块的可扩展数组传送入第二管线并且继续建立具有差分编码的新可扩展数组52。此方法的优势在于能够假设新插入的节点更可能受到随后更新的影响。
第二管线进行工作以首先检测可扩展数组中每一节点每个编码号码之间的值的差,并以差分编码方式进行再编码。在再编码时,可以追踪两个值:连同差分值的大概分布一起的最小差和最大差。存储最大差的值和最小差的值以便随后在对拓扑列表进行编码前按比例对直方图进行绘制。
首先将三元组分成相同大小的块。也就是第一块为:
(s1,e1,d1)(s2,e2,d2)…(sb,eb,db)
以及第二块为:
(+1,eb+1,db+1)(sb+2,eb+2,db+2)…(s2b,e2b,d2b)
然后针对每个与块中特定节点类型相关的三元组,基于以下各项生成三个直方图:
连续的三元组的起始位置之间的差(被称为Δstart),也就是s2-s1,s3-s2,s4-s3,…,sb-sb-1
连续的三元组的结束位置与起始位置之间的差的差(被称为Δend),也就是(e2-s2)-(e1-s1),(e3-s3)-(e2-s2),…,(eb-sb)-(eb-1-sb-1)
连续的三元组的深度之间的差(被称为Δdepth),也就是d2-d1,d3-d2,d4-d3,db-db-1
每个直方图由相应Δ内的所有不同值组成。可以追踪每个不同值发生的数目。也可以追踪这些不同值发生的范围。
可以对直方图执行群集算法(clustering algorithm)。如果存在差分值的多个群集,可以将可扩展数组和三个直方图划分为多个群集,并分别执行下一步。
对于每个群集,存储其最小差的值,并如最初一样,将所有差分值与最小差进行重新对齐。这意味着现在可以用更少的位对所有差分值进行编码。
而且,对于每个群集,可以检查直方图的形状并将它们划分成下面的分类:
·周密型(Discreet):在周密型场景下,直方图能够跨越任何范围,但所有值仅位于k个不重复的不同值的小集合中。其中k较小或大约等于lgn。可以建立k个条目的周密型表用以存储差分值。有了lgk个位来表示周密型表的索引,可以利用针对所有差分值的lgk<lglgn个位而不是每个值初始的lgn个位对块进行再编码。
·平坦型(Flat):不像周密型,这种场景具有相当长的范围[j,k]的平坦曲线,其中,k-j>lgn。对直方图进行重新对齐,将j当作初始值且将k当作k-j。与周密型情况类似,除了不需要表,可以利用每个值的lg(k-j)个位针对所有差分值进行再编码。可以证明的是k-j远小于n,即使当待编索引的节点的数目为n/c时,其中c为任一正常数。
·下降型(Falling):对于下降型曲线,首先可以像在平坦场景中那样,对直方图进行重新对齐,然后得出值的数组并以RLE(Run-LengthEncoding,运转周期编码)方式利用它们的差分值对它们进行再编码。这里提出简单而有效的被称为μ编码的方法。其中每个重新对齐的差分值ν被编码为两个部分:首先以一元形式对进行编码,接下来是二元形式的的值。在这种情况下,用最少量的位对最常出现的差分值进行编码。
·上升型(Rising):如果直方图曲线的斜率朝较大值的方向向上倾斜,还可以用μ编码对其进行编码,但将直方图从左至右翻转,并对上升型场景使用相同的方法。
·正态型(Normal):也就是说,在正态分布情况下形成曲线。首先将曲线的峰值与初始值重新对齐。首先用第一个位表示差分值的符号,然后对差分值取绝对值,并使用RLE对其余的位进行再编码。
·紧凑型(Dense):与周密型分类类似,但是更大。也就是说直方图落入k个不重复的不同值的小集合中,而k是比lgn大的较大常数,但它相对n仍然较小。
因此,对于下面与节点类型b相关的拓扑编码列表:
b(1,6,1)(7,12,1)(13,18,1)
对直方图进行如下计算。对于起始的差,值(Δstart)为6(7-1)和6(13-7)。然后如图9所示绘制这些值的直方图。
对于结束的差,值(Δend)为0((6-1)-(12-7))和0((12-7)-(18-13))。然后如图10所示绘制这些值的直方图。
对于深度的差(Δdepth),值为0(-1-1)和0(1-1)。然后如图11所示绘制这些值的直方图。
然后分析各个直方图的分布。例如,分布为上升型、下降型、正态型或紧凑型?依据分布,一种选择是用同一值替换所有的值并存储所使用的替换值。或者,可以对不同的形状使用不同的可变位编码,例如,RLE,或者将紧凑型分布供给ZL压缩。
针对每个直方图,存储直方图类型(周密型、平坦型、下降型、上升型、正态型)。在查询期间对列表的压缩形式进行解码,通过检查直方图类型,可以确定用以对压缩形式进行解码的方式。
作为带有直方图的群集的结果被传递给第三管线54。针对遵循特定规则的XML文档,树模式经常被重复。这可以被用来在第三管线获得进一步的空间效率。第三管线试图发现在群集的差分值内是否存在特定的模式。如果存在这样的模式,则整个群集将被用以输出遵循该模式的值的函数所替代。这些方法之一为用以定位重复的模式的ZLW压缩方案。
在第三管线的过程之后,原来的拓扑编码列表变成了拓扑编码列表的模式函数、差分编码列表和可扩展数组的混合列表。
该结果被连接至符号表。在以上示例中,当对b进行索引编码时,如果符号表中的条目存储了根-叶路径,则将连接回至条目{/a/b},或者如果符号表中的条目仅由标记名组成,就连接回至条目{b}。
可以在包含模式函数、差分编码列表和扩展数组的索引的任何部分进行更新。当更新发生时,每个块的三元组的数目不需要为常数。
对于严格的规则,根本不需要对模式函数进行任何处理。然而,如果在两个节点之间插入了不规则结构,可能需要将模式函数划分成两个单独的函数并在它们之间插入扩展数组以存储新更新的节点。当可扩展数组达到阚值时,然后它将通过其它的管线,就像以上所述的一样。为了在更新后最小化空间占用量,当新的模式函数与其邻居相同时,将进行合并。
下面为基于图12所示的XML文档生成SIS的具体示例。
如图13所示生成符号表,其由图12的XML文档的所有的特异标记名构成。
第一管线50为符号表中的每个条目生成全拓扑编码列表,也就是说,对于每种节点类型,为相应节点中的每一个生成三元组。在图13中示意性地示出为实际索引生成的占位符,然后如图14所示生成该拓扑编码列表。这些三元组存储在可扩展数组中。
然后将图14的拓扑编码列表传送入第二管线52来生成图15的差分全拓扑编码列表。如上所说明的计算差分值。也就是说,如上所描述的计算差分值Δstart、Δend、Δdepth。
在该示例中,针对每个特异标记名为每个差分值类型计算直方图。也就是说,如图16所示绘制差分值出现的数目。图15中用灰色标出的值没有被合并入直方图是因为它们没有前一个条目。然后将各个直方图的形状分类为图17中列出的直方图类型之一。图18示出图16中示出的各个直方图的分类。图17还为每个直方图分类示出固定的位编码值。这些被用于在符号表中存储直方图类型,作为所用转换方法的指示。
作为示例,图19、图20和图21示出如何利用最优差分编码存储节点类型A的差分值。图19(a)示出针对Δstart记录的值。直方图的分类记录为100(下降型)。已知最小的Δstart值为14,因此可以用14替换直方图的所有值并且数14被记录为替换值。由于第一个值没有包括在直方图(图15中用灰色标出的)中,该值9同样作为第一个值存储。然后为其余12个三元组(即除第一个之外的所有三元组)列出Δstart值。图19(b)示出其余值被对齐后的图19(a),也就是说,使其余值中的每一个值均减去替换值14。图19(c)示出图19(b)的可变位编码形式。
对于A,Δend值和Δdepth值的差分值都是相同的值,因此在这种情况下,模式函数比直方图编码更合适。图21示出对于A的Δend,分类为001(模式函数),可变位编码时的增量值为1(其等于0)。图22示出A的Δdepth,也就是说分类又为001并且可变位编码时的增量值为0。
然后将此信息插入到图13最初示出的符号表中来给出21中示出的表。start A的条目从“100”开始,其指示使用形状为下降型的直方图转换函数。结束A和深度A的条目从“001”开始,其指示使用模式函数转换。
作为另外的示例,图23示出如何利用最优差分编码存储节点类型b的Δend值。图23(a)示出为Δend记录的值。直方图的分类被记录为110(正态型)。已知最小的Δstart值为0,因此替换值也为0。由于第一个值没有包括在直方图(在图15中用灰色标出的)中,该值15也被作为第一个值存储。然后对于其余的12个三元组(即除第一个之外的所有三元组),对Δstart值进行列表。图23(b)示出其余值被对齐之后的图23(a),然而这里替换值为0,因此,图23(a)和图23(b)中的其余值保持不变。图23(c)示出图23(b)的可变位编码方式。
同样在图24中示出针对节点类型B的Δstart值,并且以所命名的标记开始。
类似地,针对其它值在图25中示出符号表。这表示图12示出的文档的索引。用方括号指定的值被作为普通整数进行存储。
本领域技术人员应该理解,可以在不脱离所广泛描述地本发明宽泛的精神和范围的情况下,对如具体实施例所示的本发明进行不同的改变和/或修改。因此,这些实施例从各方面考虑都为解释性的,而不是限制性的。
Claims (30)
1.一种使用以层次结构表示的数据的简明索引的方法,所述索引结构包括一符号表,该符号表以所有不同根-叶路径作为键标或以特异标记名作为键标,其中在所述符号表中,针对一键标的条目具有与该键标相关联的节点的经转换的拓扑信息及对该拓扑信息采用的转换方法的指示,并且所采用的转换方法取决于与该键标相关联的节点之间的拓扑关系,其中所述使用简明索引的方法包括以下步骤:
在所述符号表中定位所需的键标;以及
基于用来转换与该键标相关联的节点的拓扑信息的转换方法,对所述经转换的拓扑信息进行再转换,来检索与该键标相关联的所有节点的拓扑信息。
2.根据权利要求1所述的使用简明索引的方法,其中所述拓扑信息包括针对每个节点的三元组编码方案。
3.根据权利要求2所述的使用简明索引的方法,其中所述三元组编码方案为起始-结束-深度三元组编码方案或者为前序-后序-深度三元组编码方案。
4.根据权利要求1、2或3所述的使用简明索引的方法,其中所述层次结构为可扩展标记语言(XML)。
5.根据权利要求1、2或3所述的使用简明索引的方法,其中所述转换方法包括对所述拓扑信息进行差分编码。
6.根据权利要求2所述的使用简明索引的方法,其中所述简明索引结构的三元组编码方案为起始-结束-深度三元组编码方案,并且所述转换方法包括对每个三元组中的每个值进行差分编码。
7.根据权利要求6所述的使用简明索引的方法,其中所述三元组的第一差分编码值为连续三元组的起始位置的差。
8.根据权利要求6或7所述的使用简明索引的方法,其中若给定每个三元组的起始位置和结束位置之间差的差值,则所述三元组的第二差分编码值为连续三元组的差值之间的差。
9.根据权利要求6或7所述的使用简明索引的方法,其中第三差分编码值为连续三元组的深度的差。
10.根据权利要求2、3、6或7所述的使用简明索引的方法,其中所述转换方法的指示包括一替换值,该替换值用来替换与所述键标相关联的每个节点的三元组的第一值、第二值和第三值中的每一值。
11.根据权利要求2、3、6或7所述的使用简明索引的方法,其中所述转换方法的指示包括直方图的形状的指示,所述直方图绘出所有节点的三元组的第一值、第二值和第三值中的每一值。
12.根据权利要求2、3、6或7所述的使用简明索引的方法,其中所述转换方法的指示包括模式函数,所述模式函数输出与所述键标相关联的所有节点的三元组的第一值、第二值或第三值。
13.根据权利要求1、2、3、6或7所述的使用简明索引的方法,其中所述针对一键标的条目具有多种用于转换所述拓扑信息的方法。
14.根据权利要求1所述的使用简明索引的方法,其中所述拓扑信息从简明数据结构中得出。
15.根据权利要求14所述的使用简明索引的方法,其中所述数据包括拓扑层,所述拓扑层使用通过对所述以层次结构表示的数据前序遍历而生成的对称括号表示来表示节点的嵌套。
16.根据权利要求1、2、3、6、7、14或15所述的使用简明索引结构的方法,其中所述使用简明索引的方法被执行来处理结构连接查询。
17.一种为以层次结构表示的数据构造简明索引的方法,包括以下步骤:
以树遍历次序解析所述数据来生成节点的拓扑编码列表,其中所述拓扑编码列表由针对每个节点的三元组编码方案组成,所述三元组编码方案为起始-结束-深度三元组编码方案或者为前序-后序-深度三元组编码方案,并且针对与不同根-叶路径或特异标记名相关联的节点,评定这些节点之间的拓扑关系;
根据所述评定,对与所述不同根-叶路径或特异标记名相关联的节点的该拓扑编码列表进行转换;并且
在一以所述不同根-叶路径或特异标记名作为键标的符号表中生成一条目,该条目由与该键标相关联的经转换的拓扑信息及所采用的转换方法的指示组成。
18.根据权利要求17所述的构造简明索引的方法,其中所述解析的步骤包括对所述数据进行遍历来生成所述拓扑编码列表,该拓扑编码列表存储于可扩展数组中。
19.根据权利要求18所述的构造简明索引的方法,其中一旦所述可扩展数组已达到预定的块大小,则所述构造简明索引的方法进一步包括:继续生成所述拓扑编码列表并将其存储在新块的可扩展数组中。
20.根据权利要求17所述的构造简明索引的方法,其中所述构造简明索引的方法进一步包括:在生成所述拓扑编码列表之后,对所述拓扑编码列表进行差分再编码。
21.根据权利要求20所述的构造简明索引的方法,其中所述三元组编码方案为所述起始-结束-深度三元组编码方案,并且所述转换方法包括对每个三元组中的每个值进行差分再编码。
22.根据权利要求21所述的构造简明索引的方法,其中对第一值进行差分编码包括:以第一差分编码值对三元组的第一值进行再编码,所述第一差分编码值为连续三元组的起始位置的差。
23.根据权利要求21或22所述的构造简明索引的方法,其中若给定每个三元组的起始位置和结束位置之间差的差值,则对第二值进行差分编码包括:以第二差分编码值对三元组的第二值进行再编码,所述第二差分编码值为连续三元组的差值之间的差。
24.根据权利要求21或22所述的构造简明索引的方法,其中对第三值进行差分编码包括:以第三差分编码值对三元组的第三值进行再编码,所述第三差分编码值为连续三元组的深度的差。
25.根据权利要求17、18、19、20、21或22所述的构造简明索引的方法,其中所述转换的步骤包括:以同一值替换与所述键标相关联的每个节点的三元组的第一值、第二值和第三值中的每一值。
26.根据权利要求17、18、19、20、21或22所述的构造简明索引的方法,其中所述转换的步骤包括:确定直方图的形状,所述直方图绘出所有节点的三元组的第一值、第二值和第三值中的每一值。
27.根据权利要求17所述的构造简明索引的方法,其中所述转换的步骤包括:确定模式函数,所述模式函数输出与所述键标相关联的所有节点的三元组的第一值、第二值或第三值。
28.根据权利要求18所述的构造简明索引的方法,其中一旦所述可扩展数组已达到预定的块大小,则所述构造简明索引的方法进一步包括:继续生成所述拓扑编码列表并将其存储在新块的可扩展数组中,并且执行群集算法,并且如果确定了多个群集,则所述块被分成每个群集的较小的块。
29.一种为以层次结构表示的数据构造简明索引的系统,包括:
以树遍历次序解析所述数据来生成节点的拓扑编码列表,其中所述拓扑编码列表由针对每个节点的三元组编码方案组成,所述三元组编码方案为起始-结束-深度三元组编码方案或者为前序-后序-深度三元组编码方案,并且针对与不同根-叶路径或特异标记名相关联的节点,评定这些节点之间的拓扑关系的装置;
根据所述评定,对与所述不同根-叶路径或特异标记名相关联的节点的该拓扑编码列表进行转换的装置;以及
在一以所述不同根-叶路径或特异标记名作为键标的符号表中生成一条目,该条目由与该键标相关联的经转换的拓扑信息及所采用的转换方法的指示组成的装置。
30.一种使用以层次结构表示的数据的简明索引的系统,所述索引结构包括一符号表,该符号表以所有不同根-叶路径作为键标或以特异标记名作为键标,其中在所述符号表中,针对一键标的条目具有与该键标相关联的节点的经转换的拓扑信息及对该拓扑信息采用的转换方法的指示,并且所采用的转换方法取决于与该键标相关联的节点之间的拓扑关系,其中所述使用简明索引的计算机系统包括:
在所述符号表中定位所需的键标的装置;以及
基于用来转换与该键标相关联的节点的拓扑信息的转换方法,对所述经转换的拓扑信息进行再转换,来检索与该键标相关联的所有节点的拓扑信息的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2005906846 | 2005-12-06 | ||
AU2005906846A AU2005906846A0 (en) | 2005-12-06 | Succinct Index Structure | |
PCT/AU2006/001843 WO2007065207A1 (en) | 2005-12-06 | 2006-12-05 | A succinct index structure for xml |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101326522A CN101326522A (zh) | 2008-12-17 |
CN101326522B true CN101326522B (zh) | 2011-07-20 |
Family
ID=38122402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800461478A Expired - Fee Related CN101326522B (zh) | 2005-12-06 | 2006-12-05 | Xml的简明索引结构 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20090222419A1 (zh) |
EP (1) | EP1963997A4 (zh) |
JP (1) | JP2009518718A (zh) |
CN (1) | CN101326522B (zh) |
AU (1) | AU2006322637B2 (zh) |
WO (1) | WO2007065207A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8250115B2 (en) * | 2007-08-10 | 2012-08-21 | International Business Machines Corporation | Method, apparatus and software for processing data encoded as one or more data elements in a data format |
FR2936623B1 (fr) * | 2008-09-30 | 2011-03-04 | Canon Kk | Procede de codage d'un document structure et de decodage, dispositifs correspondants |
JP2010165272A (ja) * | 2009-01-19 | 2010-07-29 | Sony Corp | 情報処理方法、情報処理装置、及びプログラム |
CN101739462B (zh) * | 2009-12-31 | 2012-11-28 | 中兴通讯股份有限公司 | 可扩展标记语言编码方法、解码方法和客户端 |
US8645428B2 (en) * | 2011-12-08 | 2014-02-04 | Xerox Corporation | Arithmetic node encoding for tree structures |
CN102542074B (zh) * | 2012-02-17 | 2013-10-30 | 清华大学 | 一种元素间拓扑关系的展示和搜索工具 |
US9280575B2 (en) * | 2012-07-20 | 2016-03-08 | Sap Se | Indexing hierarchical data |
KR20140133125A (ko) * | 2013-05-09 | 2014-11-19 | 삼성전자주식회사 | 클라이언트에서 서버가 제공하는 웹 페이지를 브라우즈하는 방법 및 이를 위한 장치 |
US11822530B2 (en) * | 2020-01-22 | 2023-11-21 | Alibaba Group Holding Limited | Augmentation to the succinct trie for multi-segment keys |
US11366810B2 (en) * | 2020-04-27 | 2022-06-21 | Salesforce.Com, Inc. | Index contention under high concurrency in a database system |
CN112905186B (zh) * | 2021-02-07 | 2023-04-07 | 中国科学院软件研究所 | 适用于开源软件供应链的高信噪比代码分类方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1535429A (zh) * | 1999-05-21 | 2004-10-06 | ��Ŧī������³��˹��˾ | 可重用数据标记语言 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6584459B1 (en) * | 1998-10-08 | 2003-06-24 | International Business Machines Corporation | Database extender for storing, querying, and retrieving structured documents |
US6377953B1 (en) * | 1998-12-30 | 2002-04-23 | Oracle Corporation | Database having an integrated transformation engine using pickling and unpickling of data |
US6859217B2 (en) * | 2000-07-19 | 2005-02-22 | Microsoft Corporation | System and method to display and manage data within hierarchies and polyarchies of information |
JP2003084987A (ja) * | 2001-09-11 | 2003-03-20 | Internatl Business Mach Corp <Ibm> | Xml文書の妥当性を検証するためのオートマトンの生成方法、xml文書の妥当性検証方法、xml文書の妥当性を検証するためのオートマトンの生成システム、xml文書の妥当性検証システムおよびプログラム |
KR100484138B1 (ko) * | 2002-05-08 | 2005-04-18 | 삼성전자주식회사 | 관계형 데이터베이스에서 정규 경로식 질의를 처리하는xml 인덱싱 방법과 자료구조 |
KR100803285B1 (ko) * | 2003-10-21 | 2008-02-13 | 한국과학기술원 | 역 산술 부호화와 타입 추론 엔진을 이용한 질의 가능 엑스-엠-엘 압축 방법 |
US7634498B2 (en) * | 2003-10-24 | 2009-12-15 | Microsoft Corporation | Indexing XML datatype content system and method |
US7440954B2 (en) * | 2004-04-09 | 2008-10-21 | Oracle International Corporation | Index maintenance for operations involving indexed XML data |
US7475070B2 (en) * | 2005-01-14 | 2009-01-06 | International Business Machines Corporation | System and method for tree structure indexing that provides at least one constraint sequence to preserve query-equivalence between xml document structure match and subsequence match |
-
2006
- 2006-12-05 EP EP06817581A patent/EP1963997A4/en not_active Withdrawn
- 2006-12-05 WO PCT/AU2006/001843 patent/WO2007065207A1/en active Application Filing
- 2006-12-05 AU AU2006322637A patent/AU2006322637B2/en not_active Ceased
- 2006-12-05 US US12/094,488 patent/US20090222419A1/en not_active Abandoned
- 2006-12-05 CN CN2006800461478A patent/CN101326522B/zh not_active Expired - Fee Related
- 2006-12-05 JP JP2008543611A patent/JP2009518718A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1535429A (zh) * | 1999-05-21 | 2004-10-06 | ��Ŧī������³��˹��˾ | 可重用数据标记语言 |
Also Published As
Publication number | Publication date |
---|---|
JP2009518718A (ja) | 2009-05-07 |
US20090222419A1 (en) | 2009-09-03 |
AU2006322637A1 (en) | 2007-06-14 |
EP1963997A1 (en) | 2008-09-03 |
AU2006322637B2 (en) | 2011-07-28 |
WO2007065207A1 (en) | 2007-06-14 |
CN101326522A (zh) | 2008-12-17 |
EP1963997A4 (en) | 2012-02-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101326522B (zh) | Xml的简明索引结构 | |
CN102521386B (zh) | 基于集群存储的空间元数据分组方法 | |
CN1998241B (zh) | 用于对xml文档编码和/或解码的方法及装置 | |
US9576011B2 (en) | Indexing hierarchical data | |
CN101324896B (zh) | 一种矢量数据的存储方法、查询方法和管理系统 | |
CN102651026B (zh) | 通过预计算优化搜索引擎分词的方法及搜索引擎分词装置 | |
CN101937448A (zh) | 用于主存储器列存储装置的基于字典的保持顺序的串压缩 | |
CN102375827B (zh) | 一种对版本化的电网模型数据库进行快速加载的方法 | |
Caro et al. | Data structures for temporal graphs based on compact sequence representations | |
Ladra et al. | Scalable and queryable compressed storage structure for raster data | |
CN107766433A (zh) | 一种基于Geo‑BTree的范围查询方法及装置 | |
CN100565508C (zh) | 结构化文档管理设备、搜索设备、存储和搜索方法 | |
CN102737123B (zh) | 一种多维数据分布方法 | |
CN104937593A (zh) | 用于数据库搜索的系统和方法 | |
CN107273471A (zh) | 一种基于Geohash的二元电力时序数据索引构建方法 | |
CN105144157A (zh) | 用于压缩数据库中的数据的系统和方法 | |
CN101887458A (zh) | 一种基于路径编码的xml文档索引方法 | |
CN108009265A (zh) | 一种云计算环境下的空间数据索引方法 | |
CN116775661A (zh) | 基于北斗网格技术的空间大数据存储与管理方法 | |
CN103034677A (zh) | 多时相瓦片数据集组织和游程编码索引方法 | |
CN100576750C (zh) | 用于从索引树中产生比特流的方法 | |
CN101799825B (zh) | 基于扩展邻接矩阵的xml文档结构及语义相似性计算方法 | |
CN103500165A (zh) | 一种结合聚类和双key值的高维向量检索方法 | |
CN104008205A (zh) | 一种内容路由的查询方法及系统 | |
CN110297952B (zh) | 一种基于网格索引的并行化高速铁路勘测数据检索方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110720 Termination date: 20131205 |