CN103793451B - 用于排序并表示数据元组集合的系统和方法 - Google Patents
用于排序并表示数据元组集合的系统和方法 Download PDFInfo
- Publication number
- CN103793451B CN103793451B CN201310510518.5A CN201310510518A CN103793451B CN 103793451 B CN103793451 B CN 103793451B CN 201310510518 A CN201310510518 A CN 201310510518A CN 103793451 B CN103793451 B CN 103793451B
- Authority
- CN
- China
- Prior art keywords
- tuple
- data
- data tuple
- search
- subsequence
- 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
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000014509 gene expression Effects 0.000 claims abstract description 93
- 238000012986 modification Methods 0.000 claims description 16
- 230000004048 modification Effects 0.000 claims description 16
- 238000003860 storage Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 12
- 238000013459 approach Methods 0.000 claims description 7
- 230000008707 rearrangement Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 24
- 210000004027 cell Anatomy 0.000 description 22
- 230000004913 activation Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 15
- 238000013500 data storage Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 13
- 230000009471 action Effects 0.000 description 12
- 238000007726 management method Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 10
- 238000012216 screening Methods 0.000 description 8
- 238000012163 sequencing technique Methods 0.000 description 8
- 230000001960 triggered effect Effects 0.000 description 8
- 239000008186 active pharmaceutical agent Substances 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 241001275944 Misgurnus anguillicaudatus Species 0.000 description 5
- 230000006399 behavior Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000008054 signal transmission Effects 0.000 description 3
- NAPPWIFDUAHTRY-XYDRQXHOSA-N (8r,9s,10r,13s,14s,17r)-17-ethynyl-17-hydroxy-13-methyl-1,2,6,7,8,9,10,11,12,14,15,16-dodecahydrocyclopenta[a]phenanthren-3-one;(8r,9s,13s,14s,17r)-17-ethynyl-13-methyl-7,8,9,11,12,14,15,16-octahydro-6h-cyclopenta[a]phenanthrene-3,17-diol Chemical compound O=C1CC[C@@H]2[C@H]3CC[C@](C)([C@](CC4)(O)C#C)[C@@H]4[C@@H]3CCC2=C1.OC1=CC=C2[C@H]3CC[C@](C)([C@](CC4)(O)C#C)[C@@H]4[C@@H]3CCC2=C1 NAPPWIFDUAHTRY-XYDRQXHOSA-N 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 210000000352 storage cell Anatomy 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 241000859095 Bero Species 0.000 description 1
- 241000336315 Cistanche salsa Species 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 241000735284 Irena Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000037396 body weight Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 210000003733 optic disk Anatomy 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2468—Fuzzy queries
Abstract
本公开涉及用于排序并表示数据元组集合的系统和方法。本发明提供了一种用于管理数据元组集合的方法。搜索元组被接收并且比较关系被确定。数据元组集合基于比较关系来排序。在所排序的数据元组集合内的两个连续的数据元组之间确定搜索元组的布置,使得搜索元组在所排序的数据元组集合当中根据比较关系来排序。基于在两个连续的数据元组之间的搜索元组的布置来生成表示。该表示包括包含于所排序的数据元组集合内的数据元组的序列。该序列包括两个连续的数据元组以及在这两个连续的数据元组之间的搜索元组。
Description
技术领域
本发明涉及用于管理数据集合的数据处理方法和系统,并且更具体地涉及用于在来自数据集合的所排序的数据元组(data tuple)当中排序并表示(present)搜索元组的技术。
背景技术
用于提供对数据集合的已知搜索的用户界面包括筛选表单和分页表。用户在筛选表单上输入值,该筛选表单是预定义的或者动态的(即,由规则器支配)。用户作出选择以通过将在筛选表单上输入的值转换为SQL查询并且执行在数据库内的查询来开始对数据集合的搜索。数据库返回搜索结果,该结果包括与查询匹配的数据。搜索的结果被显示于分页表内。所返回的数据是整个数据集合(即,存在于筛选表单可以应用于其上的数据库内的所有数据)的子集。SQL查询的执行在严格的条件下从数据集合中选出数据的子集,该严格的条件可能不符合人关于从数据集合中搜索数据所思考的方式。通过已知的搜索方法来加强的严格条件会导致搜索迭代;即,用户反复地更新在筛选表单内的搜索条件并且重新执行查询直到找到用户的期望结果。
发明内容
在第一实施例中,本发明提供一种用于管理数据元组集合的方法。该方法包括计算机接收包含k个元素的搜索元组,其中k是整数并且k≥1。该方法还包括计算机确定用于指定元组排序的比较关系。每个元组包括k个元素。该方法还包括:计算机通过使用比较关系并且基于包含于每个数据元组内的且与包含于所接收的搜索元组内的k个元素对应的k个元素的值来对数据元组集合进行排序。该方法还包括:计算机基于比较关系来确定搜索元组在所排序的数据元组集合内的两个连续的数据元组之间的布置(placement),使得搜索元组在所排序的数据元组集合当中根据比较关系来排序。该方法还包括,基于使得搜索元组在所排序的数据元组集合当中根据比较关系来排序的在两个连续的数据元组之间的搜索元组的布置,计算机生成搜索元组在包含于所排序的数据元组集合内的数据元组的序列当中的表示。序列包括至少两个连续的数据元组。
本文还描述并要求了系统、程序产品以及用于支持计算基础设施的过程,其中该过程提供至少一种支持服务,其中系统、程序产品以及用于支持计算基础设施的过程对应于上述方法。
本发明的实施例提供用户界面构件,该用户界面构件使得用户能够对结构化的数据集合执行更自然和更模糊的搜索,并且在由搜索产生的结构化的数据集合的有序版本当中生成用户界面构件的显示。用户能够查看在有序数据集合中的最接近用户的搜索查询的数据元组,即使没有找到精确匹配,而不考虑数据元组与在搜索查询中的值的阈值接近度。在一种实施例中,数据元组被显示于用户界面构件中的表格内,其中表格的高度保持一致使得决不会存在多页数据元组。通过避免多页数据元组并且通过保持表格的高度一致,用户界面构件良好地适合于移动应用。
附图说明
图1是根据本发明的实施例的用于管理数据元组集合的系统的框图。
图2是根据本发明的实施例的在图1的系统中的用于管理数据元组集合的过程的流程图。
图3A-3B示出了根据本发明的实施例的在图2的过程中的用于确定搜索元组的布置并且生成、显示和管理搜索元组在包含于所排序的数据元组集合内的数据元组的序列中的表示的过程的流程图。
图4A是根据本发明的实施例的包括在图2的过程中生成、显示及管理的数据元组的表示之前的数据元组的UI构件的示例性表示。
图4B是根据本发明的实施例的图4A的UI构件的示例性表示,其中在图4A中的数据元组基于标题单元的用户选择而重新排序。
图4C是根据本发明的实施例的在包含于所排序的数据元组集合内的数据元组的序列中的搜索元组的示例性表示,其中该表示是在图2的过程中生成、显示及管理的,并且其中搜索元组的布置基于搜索元组内的值。
图4D是根据本发明的实施例的在包含于所排序的数据元组集合内的数据元组的序列中的搜索元组的示例性表示,其中该表示是在图2的过程中生成、显示及管理的,并且其中在图4C中的数据元组基于在搜索元组内加入第二值而重新排序。
图4E是根据本发明的实施例的在包含于所排序的数据元组集合内的数据元组的序列中的搜索元组的示例性显示,其中该显示在图3A-3B的过程中由对图4D中的表示进行管理而产生。
图5是根据本发明的实施例的用于指定在规则表构件与数据源之间的接口的定义的示例图,其中数据源包括在图2的过程中管理的数据元组集合,并且其中规则表构件定义了其布置在图3A-3B的过程中确定的搜索元组。
图6是根据本发明的实施例的包含于图1的系统中的并且用于实现图2和图3A-3B的过程的计算机系统的框图。
具体实施方式
概述
本发明的实施例提供使用特定数据源的复杂的用户界面(UI)构件,使得用户能够对结构化的数据集合执行自然的且模糊的搜索,其中数据集合能够被排序并被查询。UI构件可以将搜索表单与搜索结果表格一起结合成单个构件。由用户输入搜索表单中的搜索元组内的值使在结构化的数据集合中的所有数据元组自动排序。UI构件将搜索元组连同来自有序数据集合的与搜索元组匹配最紧密的数据元组一起按顺序地显示出来。UI构件并不限定于通过使数据元组的值与搜索元组的值匹配来严格定义的数据集合的子集;相反,通过考虑数据集合当前是如何排序的,UI构件显示与搜索元组相比为负的数据元组,并且显示与搜索元组相比为正的其他数据元组。数据元组被显示于UI构件内,即使没有找到与搜索元组的精确匹配,而不需要与搜索元组间的任何阈值接近度。本发明的实施例可以允许UI构件对大的数据池和结构化的数据流执行最紧密匹配的搜索,同时使用户能够避免在传统的方法中包括更新筛选表单内的搜索条件的搜索迭代。
用于管理数据元组集合的系统
图1是根据本发明的实施例的用于管理数据元组集合的系统的框图。系统100包括运行基于软件的元组管理引擎104的计算机系统102。元组管理引擎104接收由用户输入的搜索元组106。元组管理引擎接收或确定用于指定在数据元组集合110中如何排序数据元组的比较关系108。数据元组集合110的来源或接口在本文中称为数据源。数据元组集合110被存储于在此称为数据存储的数据仓库内。
元组管理引擎104根据比较关系108来对数据元组集合110进行排序。在一种实施例中,元组管理引擎104确定搜索元组106在所排序的数据元组集合110内的布置,使得搜索元组106以及所排序的数据元组集合110处于由比较关系108指定的顺序。使用搜索元组106的布置,元组管理引擎104生成UI构件112,UI构件112包括布置于包含于所排序的数据元组集合110内的至少一些有序数据元组的序列内的搜索元组的表示。
在一种实施例中,UI构件112包括下列部分:
1.规则器(ruler)(也称为(a.k.a.)规则表(ruler table)):包括标题、搜索表单、控件(control)和信息指示符。
2.负表(negative table):在UI构件112中显示于规则器之上的表,其中该表的每个行都包括包含于数据元组集合110内的相应数据元组的值。负表的列与数据源内的域相关,成一对一的对应关系。负表包括与当前存在于规则器中的搜索表单内的值相比为负的信息。负信息指出在负表的每个行内的值小于当前存在于规则器中的搜索表单内的相应值。
3.正表(positive table):在UI构件112中显示于规则器之下的表,其中该表的每个行包括包含于数据元组集合110内的相应数据元组的值。正表的列与数据源内的域相关,成一对一的对应关系。正表包括与当前存在于规则器中的搜索表单内的值相比为正的及相等的信息。正的及相等的信息指出在正表的每个行内的值都大于或等于当前存在于规则器中的搜索表单内的相应值。
在其中搜索元组106为0-元组的特殊情况下,负表在其任一行内都不包括数据元组(即,它的行为空),而正表在行内包括数据元组,只要数据源包括至少一些数据。
在一种实施例中,负表和正表包括数量相同的行,其中行数被表示为深度(depth)。也就是,负表和正表两者都包括深度个行。在负表和正表中具有数量相同的行可简化实现方式,因为较少的参数被传递给数据源并且不需要具有不同尺寸的不同缓存。如果搜索元组106包括用于使数据元组集合110按照使得在规则器的负侧或正侧的数据源内存在少于深度个数据元组的方式来排序的值,则具有少于深度个数据元组的表(即,负表或正表)尚未完全填充,由此包括其中没有数据的一个或多个空行。除非数据源为空,否则在与规则器相邻的一个行内必须存在至少一个数据元组,在规则器的负侧或正侧。
以下将描述包含于规则器内的标题、搜索表单和控件。
标题:标题包括标题单元。每个标题单元包括域的名称并且可由用户选择(例如,通过点击或者别的动作)来生成数据元组集合110的排序。只有在搜索表单为空(例如,搜索元组为0-元组)时,用户才“手动”选择数据元组集合110的排序。数据元组集合110的“手动”排序基于在域内的由关于标题单元的用户选择指出的数据。如果搜索表单由用户以至少一个值来填充并且搜索元组存在,则数据元组集合110的排序自动地基于在搜索表单中填入的值和比较关系108来确定。用户填入搜索表单的值的顺序与由比较关系108使用的搜索元组元素的顺序匹配。在一种实施例中,为确定排序而选择的标题单元包括相应的指示符,其中不同的指示符可区分在搜索表单为空时对数据元组集合110进行的“手动”排序和数据元组集合110基于在搜索表单内输入的值的自动排序。
搜索表单:搜索表单包括由相应的标题单元标示的输入字段,其中每个输入字段都能够接收来自用户的值以定义并确定对在数据源中的数据元组集合110的搜索。用于数据源中的每个域的输入控件确定能够输入搜索表单中的每个输入字段内的数据类型。在用户于搜索表单内输入值时,搜索元组106被定义。搜索元组的元素按照与在搜索表单内输入值的顺序相同的顺序来排序。
搜索表单对用户更改是敏感的,使得对的每次更改搜索表单内的值(例如,字符串的键击以及其他数据类型的值改变)在搜索元组中反映,并且搜索动作或数据取出在没有显著延迟的情况下开始。搜索动作或数据取出对数据源进行以根据搜索元组106对数据源进行排序。找出搜索元组所属的在有序数据源内的布置是基于数据源的数据顺序的。
控件:控件允许用户对UI构件112执行操作。控件是用户可选的按钮或者其他图形用户界面(GUI)元素,这些按钮或元素在被选择时可以执行下列动作中的一项或多项:
(1)下移数据元组:激活下移数据元组控件会沿负方向推动搜索元组106(即,朝着比搜索元组106小的数据元组),使得在负表内的d个数据元组从负表移至正表,在正表内的d个最大的正(most positive)数据元组被从UI构件112中去除,并且在负表中紧随最小的负(most negative)数据元组之后的随后d个数据元组被从所排序的数据元组集合116中取出并被添加至负表。如果在所排序的数据元组集合110内存在当前在负表内紧随最小的负数据元组之后的少于d个的数据元组,则在所排序的数据元组集合110内的剩余的(即,少于d个的)数据元组被添加至负表。
(2)上移数据元组:激活上移数据元组控件会沿正方向推动搜索元组106(即,朝着大于或等于搜索元组106的数据元组),使得在正表内的d个数据元组从正表移至负表,在负表内的d个最小的负数据元组被从UI构件112中去除,并且在正表内紧随最大正的数据元组之后的随后d个数据元组被从所排序的数据元组集合116中取出并被添加至正表。如果在所排序的数据元组集合110内存在当前在正表内紧随最大正的数据元组之后的少于d个的数据元组,则在所排序的数据元组集合110内的剩余的(即,少于d个的)数据元组被添加至正表。
(3)返回偏移0:在使用上移数据元组和/或下移数据元组控件时,用户改变在正表和负表中显示的数据与搜索元组106的内容相比的偏移。激活返回偏移0控件会清除当前偏移并使搜索元组106返回到其在所排序的数据元组集合110内的原始位置,如由比较关系108来确定的。例如,如果用户激活上移数据元组控件使得搜索元组106被从其原始位置6推向在正方向上的位置,则偏移从0变为6。如果用户之后激活返回偏移0控件,则搜索元组106被返回到其原始位置并且偏移从6变为0。在一种实施例中,偏移在规则器上显示。
(4)清除搜索表单:激活清除搜索表单控件会清除搜索表单和搜索元组使得在搜索表单中的所有输入字段都为空。
在一种实施例中,含于UI构件112内的其他选项和特征包包括:
有关负表和正表的事件:在一种实施例中,负表和正表包括允许在负表或正表内的特定行上的用户动作被传播以进行进一步处理的事件。
错误显示:如果对数据元组集合110的搜索动作或数据取出产生错误,则错误在规则器上显示,为用户指出问题的类型(即,与数据源通信的问题或者数据源自身遇到错误)。
警告显示:如果对数据元组集合110的搜索动作或数据取出导致给出警告的具体情况,则警告在规则器上显示,为用户指出数据源遇到了由具体情况所定义的那种问题。例如,如果数据源为空,则显示警告。
UI构件112的其他特征是可选的并且可以包括:
不需要滚动条,尤其是垂直滚动条:UI构件112的作用是提供对大的数据池或数据流的具体类型的搜索。创新特征之一是UI构件112不知道其在底层(underlying)数据源内的当前位置。此外,UI构件112也不需要示出除偏移外的任何类型的定位,如同以上所讨论的。
缓存:UI构件112的实现方式提供了缓存机制。从数据源中的初始数据取出,或者后续的搜索动作或从数据源中的数据取出试图在正表和负表两个表内提供2*深度个行,或者如果UI构件112特别地要求沿单一方向的行则沿单一方向来提供。上移或下移数据元组可以耗尽在特定方向上的缓存。响应于缓存内在一个方向(即,负或正)上缺少足够的数据,元组管理引擎104然后开始从数据源中的另加数据取出以为那一个方向获得更多数据。所获得的数据被添加至缓存并且在需要时显示出来。如果一个表(即,正表或负表)为空(即,只包括空行),则努力将数据在空表的方向上向前移动的每个用户动作开始从数据源中的另加数据取出。如果从数据源中的另加数据取出没有导致为该移动方向获得更多的数据,则UI构件112确保存在与规则器相邻的至少一个填充行,除非数据源完全为空。缓存机制与数据源以数据进行工作的方式紧密结合。
如果数据源是数据库,则数据源的实现方式避免从数据库中检索大量的数据,并且使用通过使用由数据库提供的技术对数据库进行的最优搜索,以便使搜索变快并且消耗尽可能少的资源量。
样式:UI构件112按照允许开发人员和设计者定义可使UI构件112无缝地适配于较大的图形用户界面内的样式的方式来实现。
UI构件首选项:UI构件112的首选项在以下给出:
·深度(Depth):用于定义在负表内的行数和在正表内的行数的整数。在一种实施例中,每个表都正好具有深度个行。不包括数据的行是空行,但是仍然存在于表内,由此保留UI构件112的一致高度。
·结构:用于唯一地定义数据源的域、负表和正表两者的列、标题单元和搜索表单的结构。结构定义了字段数、字段ID、用于在每个标题单元内显示名称的字段、用于搜索表单内的输入控件的字段类型、在值能够进行格式化的情况下的格式化字符串,以及特定字段的每个单元和输入控件的基本式样。
·在数据源内的数据的初始顺序:在数据源内的数据的用户定义的初始顺序是活动的并且在UI构件112创建之后显示出来。只有在初始搜索元组没有定义(例如,UI构件的数据源进行手动排序,而非自动排序)时,该首选项才为有效。
·初始搜索元组:用于触发底层数据源自动排序的搜索表单的初始值。
·数据源:用于填充UI构件112内的负表和正表的数据的来源。数据源与为UI构件112提供的结构匹配。UI构件事件:UI构件112具有众多事件,这些事件在下面列出:
·onSearchValueChange:在搜索表单内的值改变时触发。该事件是用于允许底层GUI捕获搜索表单内的变化的附加事件。传递参数必须包括字段标识符和新的值。
·onDataFetch:在UI构件112开始进行从数据源中的数据取出时触发。传递参数必须包括搜索元组、所取出的数据量以及取出方向。
·onDataMoveUp:在数据上移时触发。
·onDataMoveDown:在数据下移时触发。
·onColumnClick:在用户点击负表或正表内的列时触发。传递参数包括包含于所点击的行内的数据元组。
·onReturnToZero:在用户选择激活返回偏移0控件时触发。
·onError:在存在显示于UI构件112上的错误时触发。传递参数包括错误定义。
·onWarning:在存在显示于UI构件112上的警告时触发。传递参数包括警告定义。
在一种实施例中,UI构件112包括用于指定规则器、正表和负表的结构,其中该结构由UI构件112的数据源支持。数据源必须具有根据用户请求对数据进行排序和重排并且对有序数据和重排序数据执行搜索的能力。
在一种实施例中,数据源对用户所请求的并在标题上指示的数据元组的具体排序予以考虑,并且执行搜索以找出与规则器中的搜索表单内的值最接近的数据元组。由数据源找出的最接近的数据元组提供从该处起填充负表和正表的起始点。基于比较关系108,负表包括与搜索表单内的值相比为负的数据元组。基于比较关系108,正表包括与搜索表单内的值匹配的数据元组并且还包括与搜索表单内的值相比为正的其他数据元组。在一种实施例中,基于由规则器中的搜索表单指定的数据元组的具体排序,负表和正表从规则器起向外填充。
系统100的构件的功能的细节将在下文针对图2和图3A-3B的讨论来描述。
数据源的定义
在这部分,关系代数被用来提供关于用于提供数据元组集合110的数据源的描述。域集D被定义为数据源的基础:D={D1,...,Dn},其中n≥1。数据源DS被描述为多个n元组(即,数据元组),该元组的元素为域集D的成员:
DS={(d1,...,dn):d1|D1,...,dn|Dn}=D1×...×Dn。
每个搜索都在作为的域集的子集上定义,剩余部分被定义为S’。
数据源DS被重新定义为子集S和S’的笛卡尔乘积:
DS=S×S'={(s,s′)}。
为了进一步使用,基数被定义为k-|s|,ξ-|s′|。
两个随机元素x和y被定义为:
x=((x1,…,xk),(x1',…,xl')),y=((y1,…,yk),(y1',…,yk′))
随机元素x和y根据比较关系108而有如下关系:
和
对于数据源的全部成员,数据源必须根据比较关系108而排序为:DS={...,ei,ei+1,...:ei≤ei+1}。
由用户提供的搜索元组106被表示为s=(s1,s2,…,sk)。搜索元组s在有序数据源内适配于特定的位置:
{...,e-3,e-2,e-1,s,e1,e2,e3,...:...≤e-3≤e-2≤e-1<s≤e1≤e2≤e3≤...}。
以上所指定的有序数据源能够通过多个SQL查询或者以单个更复杂的SQL查询来获得。
在一种实施例中,数据源被实现用于只接收(1)搜索元组,即使S={φ},(2)数据源在负表内必须提供的行数,以及(3)数据源在正表内必须提供的行数。作为选择,数据源接收搜索元组以及用于指出在负表内的行数和在正表内的行数两者的一个数字。
在一种实施例中,数据源的实现方式受用于支持字符串字段的部分匹配的要求所约束。也就是,在数据元组集合110中的数据元组内字符串值从与在搜索元组106内的相应字符串值精确匹配的字符序列开始,然后字符串值被部分匹配并且数据源的实现方式在使用比较关系108时认为字符串值是相等的。例如,在部分匹配受到支持的情况下,对于在搜索元组106内的“Da”以及在数据元组内的“Dalibor”,数据源的实现方式将“Da”=“Dalibor”评价为真。
在S={φ}的特殊情况下,它意指搜索没有被使用并且没有被定义。数据源是DS={s,e1,e2,...},s=(),这指示数据源的所有成员与搜索元组相比都为正的,该搜索元组在这种特殊情况下为0元组。
用于管理数据元组集合的过程
图2是根据本发明的实施例的用于在图1的系统中管理数据元组集合的过程的流程图。图2的过程开始于步骤200。在步骤202之前,计算机系统102(参见图1)可以显示包含于数据元组集合110(参见图1)内的数据元组,其中所显示的数据元组按照取决于底层数据源的实现方式的顺序,而是还没有根据搜索元组来排序。在步骤202中,元组管理引擎104(参见图1)接收包括k个元素的搜索元组106(参见图1),其中k是整数且k≥1。
在步骤204中,元组管理引擎104(参见图1)确定比较关系108(参见图1),该比较关系108指定数据元组集合110的排序(参见图1)。在数据元组集合110(参见图1)内的每个数据元组都包括与包含于搜索元组106(参见图1)内的k个元素对应的k个元素。在数据元组集合110(参见图1)内的每个数据元组都可以包括多于k个的元素。
在步骤206中,元组管理引擎104(参见图1)通过使用在步骤204中确定的比较关系108(参见图1)对整个数据元组集合110(参见图1)(即,全部数据存储)进行排序。在步骤206中的数据元组集合110(参见图1)的排序包括将在步骤202中接收的搜索元组106内(参见图1)的k个元素的值与包含于数据元组集合110(参见图1)中的每个数据元组内的相应k个元素的值进行比较。以下,在关于图2的讨论中,在步骤206中对数据元组集合110(参见图1)进行排序的结果称为“所排序的数据元组集合”。由于步骤206基于搜索元组来对整个数据集合进行排序,因而该排序不同于基于搜索条件的筛选(filtering)。
在数据源内的数据的排序可以取决于数据源的实现方式和开发人员。数据存储(例如,数据库)可以排序为“Jo”<“John”,但是数据源的开发人员可以决定改变该排序使得“Jo”=“John”以获得对用户而言更自然的结果。
在步骤208中,基于在步骤204中确定的比较关系108(参见图1)并且使用在步骤202中接收的搜索元组106(参见图1)内的k个元素的值,元组管理引擎104(参见图1)确定在所排序的数据元组集合内的两个连续的数据元组之间的搜索元组106(的布置参见图1),使得搜索元组106(参见图1)在所排序的数据元组集合中根据比较关系108(参见图1)来排序。
在步骤210中,基于在步骤208中确定的搜索元组106(参见图1)的布置,元组管理引擎104(参见图1)生成包括在数据元组的序列内的搜索元组106(参见图1)的表示的UI构件112(参见图1),其中数据元组的序列包含于所排序的数据元组集合内。上述数据元组序列包括它们之间为在步骤208中确定的布置的至少两个连续的数据元组。
在一种实施例中,UI构件112(参见图1)包括包含用于在搜索元组106(参见图1)中接收值的输入字段的规则表。规则表可以包括与输入字段对应的字段名称的行。
在步骤212中,元组管理引擎104(参见图1),计算机系统102(参见图1)或另一个计算机系统的另一个构件显示并管理包括在包含于所排序的数据元组集合内的数据元组序列所包括的搜索元组106(参见图1)的表示的UI构件112(参见图1)。
紧随步骤212之后,图2的过程结束于步骤214。
图3A-3B示出了根据本发明的实施例的用于确定搜索元组的布置并且生成、显示并管理在图2的过程中的在包含于所排序的数据元组集合内的数据元组的序列中的搜索元组的表示的过程的流程图。图3A-3B的过程开始于图3A中的步骤300。在步骤302中,元组管理引擎104(参见图1)确定包含于在步骤206(参见图2)中创建的所排序的数据元组集合内的数据元组的第一有序子集,使得第一有序子集包括比搜索元组106(参见图1)小的数据元组。基于在步骤204(参见图2)中确定的比较关系108(参见图1),在第一有序子集内的数据元组小于搜索元组106(参见图1),从而确定在第一有序子集中的每个数据元组内的元素的值都小于在搜索元组106(参见图1)内的相应元素的值。
在步骤304中,元组管理引擎104(参见图1)确定包含于在步骤206(参见图2)中创建的所排序的数据元组集合内数据元组的第二有序子集,使得第二有序子集包括大于或等于搜索元组106(参见图1)的数据元组。基于在步骤204(参见图2)中确定的比较关系108(参见图1),在第二有序子集中的数据元组大于或等于搜索元组106(参见图1),该比较关系108由元组管理引擎104(参见图1)用来确定在第二有序子集中的每个数据元组内的元素的值大于或等于在搜索元组106(参见图1)内的相应元素的值。在第二有序子集中的每个数据元组内的上述元素是在第一有序子集中的每个数据元组内的元素的相应元素,这在上文针对步骤302进行了讨论。
在一种可替换的实施例中,在步骤304中,基于比较关系108(参见图1),元组管理引擎104(参见图1)确定包含于在步骤206(参见图2)中创建的所排序的数据元组集合内的数据元组的第二有序子集,使得第二有序子集包括大于(但不等于)搜索元组106(参见图1)的数据元组。在该可替换的实施例中,在步骤302中,基于比较关系108(参见图1),元组管理引擎104(参见图1)确定包含于在步骤206(参见图2)中创建的所排序的数据元组集合内的数据元组的第一有序子集,使得第一有序子集包括小于或等于搜索元组106(参见图1)的数据元组。
在步骤306中,元组管理引擎104(参见图1)生成使第一有序子集显示于显示器的一个部分,第二有序子集显示于显示器的另一个部分,以及搜索元组显示于第一及第二有序子集之间的显示。在一种实施例中,步骤306包括生成包括在显示器的上部的第一有序子集、在显示器的下部的第二有序子集以及在显示器的上部和下部之间的搜索元组的显示。
在一种可替换的实施例中,步骤306包括生成包括在显示器的第一部分内的第一有序子集、在显示器的第二部分内的第二有序子集以及在显示器的第三部分内的搜索元组的显示。第一及第二部分通过图形元素和/或图形属性而彼此区分开。
在步骤308中,元组管理引擎104(参见图1)确定是否接收到用户选择,其中该选择是用于通过将显示上移d个数据元组(即,上移)或者将显示下移d个数据元组(即,下移)来管理显示的指令。如果在步骤308中接收了用户选择并且该选择为上移,则图3A-3B的过程继续进行图3B中的步骤310。如果在步骤308中接收了用户选择并且该选择为下移,则图3A-3B的过程继续进行图3B中的步骤312。如果在步骤308中没有接收到用户选择,则图3A-3B的过程结束于步骤309。
在图3B的步骤310中,该步骤310紧随在步骤308(参见图3A)中的关于接收到上移d个数据元组的用户选择的确定之后,元组管理引擎104(参见图1)通过以下操作来更新在包含于在步骤206(参见图2)中排序的数据元组集合110(参见图1)内的数据元组序列内的搜索元组106(参见图1)的显示:
·从第一有序子集中去除d个最小的数据元组
·将该d个最小的数据元组从第二有序子集移至第一有序子集;以及
·将来自在步骤206(参见图2)中排序的数据元组集合110(参见图1)的随后d个数据元组添加至第二有序子集,其中该随后d个数据元组大于在第二有序子集中的之前最大的数据元组。
在步骤312中,该步骤312紧随在步骤308(参见图3A)中的关于接收到下移d个数据元组的用户选择的确定之后,元组管理引擎104(参见图1)通过以下操作来更新在包含于在步骤206(参见图2)中排序的数据元组集合110(参见图1)内的数据元组序列中的搜索元组106(参见图1)的显示:
·从第二有序子集中去除d个最大的数据元组
·将该d个最大的数据元组从第一有序子集移至第二有序子集;以及
·将来自在步骤206(参见图2)中排序的数据元组集合110(参见图1)的随后d个数据元组添加至第一有序子集,其中该随后d个数据元组小于在第一有序子集中的之前最小的数据元组
步骤314紧随步骤310和步骤312之后。在步骤314中,元组管理引擎104(参见图1)确定是否接收到用于将搜索元组106(参见图1)返回到其在步骤210(参见图2)所生成的表示中的原始位置的用户选择。如果元组管理引擎104(参见图1)在步骤314中确定接收到上述用户选择,则沿步骤314的是(Yes)分支进行并且执行步骤316。
在步骤316中,元组管理引擎104(参见图1)通过将搜索元组返回到其在步骤210(参见图2)所生成的表示中的原始位置来更新显示。步骤318紧随步骤316之后。
返回到步骤314,如果元组管理引擎104(参见图1)确定未接收到用于将搜索元组返回到其原始位置的用户选择,则沿步骤314的否(No)支路进行并且执行步骤318。
在紧随步骤316以及步骤314的否支路之后的步骤318中,元组管理引擎104(参见图1)确定是否正在继续进行对在数据元组序列内的搜索元组106(参见图1)的显示的管理。如果步骤318确定对显示的管理正在继续进行,则沿步骤318的是支路进行,并且图3A-3B的过程循环回到步骤308(参见图3A)。如果步骤318确定对显示的管理没有正在继续进行,则沿步骤318的否支路进行并且图3A-3B的过程结束于步骤320。
实例
在这部分给出的实例中,规则表使用表述性状态转移(REST)服务调用来实现为Dojo小部件,以对象符号(JSON)内容类型作为到数据源的实现方式的接口。数据源的实现方式是针对数据库实现的。Dojo小部件包含于Dojo工具包内,该Dojo工具包是由位于美国加州山景城(Mountain View)的Dojo Foundation提供的开源的模块化的工具包。这部分的实例使用depth(深度)=8并且structure(结构)=[{field(字段):“id”,name(名字):“ID”},{field:“name”,name:“Name”},{field:“surname(姓氏)”,name:“Surname”},{field:“birthdate(生日)”,name:“Birth date”,type:“date”,dateFormat:“dd.MM.yyyy”},{field:“height(身高)”,name:“Height”,type:“integer”},{field:“weight(体重)”,name:“Weight”,type:“decimal”}]。
在这部分的实例中的数据源的域集是:
D={id,name,surname,birthdate,height,weight}
图4A是根据本发明的实施例的在图2的过程中生成、显示及管理的数据元组的表示之前的包括数据元组的UI构件的示例性表示。UI构件400包括规则表401,该规则表401包括搜索表单402(即,可以接收包含于搜索元组106(参见图1)内的值的输入字段的行)以及包括与搜索表单402的输入字段对应的字段名称的标题单元404。
规则表401尚未包括搜索的值并且因此尚未基于搜索元组106(参见图1)对数据元组集合110(参见图1)进行排序。相反,UI构件400的正部分406包括包含于数据元组集合110(参见图1)内的数据元组,而UI构件400的负部分408不包含数据元组。数据元组依据底层数据源的实现方式而在部分406中排序。在本例中,数据源的实现方式使用数据库;因此,数据元组最初根据所定义的主关键字在部分406中排序,该主关键字为ID字段。
UI构件400提供能够由用户选择的选项,包括返回偏移0按钮410、清除搜索表单按钮412、下移数据元组按钮414及上移数据元组按钮416。激活返回偏移0按钮410在用户激活了下移数据元组按钮414和/或上移数据元组按钮416之后使在搜索表单402中的搜索元组返回到其原始位置。激活清除搜索表单按钮412会清除搜索表单402,使得在搜索表单402内的所有输入字段都为空。激活下移数据元组按钮414会将规则表401沿负方向推动(即,朝着比搜索元组小的数据元组),使得在负部分408内的数据元组从负部分408内的表格移至正部分406内的表格。激活上移数据元组按钮416会将规则表401沿正方向推动(即,朝着比搜索元组大的数据元组),使得在正部分406内的数据元组从正部分406内的表格移至负部分408内的表格。
图4B是根据本发明的实施例的图4A的UI构件的示例性表示,其中在图4A中的数据元组基于标题单元的用户选择而重新排序。在图4B中的UI构件400包括部分420,该部分420包括来自已根据名字(Name)字段内的值重新排序的数据元组集合110(参见图1)的数据元组。重新排序是用于手动分类数据元组集合110(参见图1)的在标题单元404中的名字字段的用户选择的结果。用户通过点击(或者(否则的话)激活)在规则表401中标为“名字(Name)”的标题单元来选择名字字段,并且用户选择指示符422(例如,绿箭头)指示。与图4A类似,部分408和搜索表单402保持为空,并且按钮410、412、414和416具有以上针对图4A所描述的功能。
图4C是根据本发明的实施例的在包含于所排序的数据元组集合内的数据元组的序列中的搜索元组的示例性表示,其中该表示是在图2的过程中生成、显示及管理的,并且其中搜索元组的布置基于搜索元组内的值。在图4C中的UI构件400包括规则表401,该规则表401包括搜索表单402和标题单元404。用户在搜索表单402中的输入字段430内输入“Da”。也就是,具有作为名字字段的值的“Da”的搜索元组106(参见图1)包含于搜索表单402内,并且在步骤202(参见图2)中接收。在这种情况下,S={name},S’={id,surname,birthdate,height,weight},并且搜索元组为s=(“Da”)。
响应于“Da”的用户输入,元组管理引擎104(参见图1)调用数据源来从数据元组集合110(参见图1)中取出数据元组,并且使用在搜索元组中的值“Da”根据在步骤204(参见图2)中确定的比较关系108(参见图1)自动地对所取出的数据元组进行排序。自动排序由不同的指示符436(例如,红色箭头)指示,以将该排序与由图4B中的指示符422指示的排序区分开。
元组管理引擎104(参见图1)在步骤208(参见图2)中确定在名字字段具有“Crnko”的数据元组与名字字段具有“Damir”的数据元组之间的搜索元组106(参见图1)的布置,因为“Da”根据比较关系108(参见图1)被排序于“Crnko”与“Damir”之间。
元组管理引擎104(参见图1)在步骤210(参见图2)中生成包含于UI构件400内的表示,使得名字字段具有“Da”的搜索元组106(参见图1)在开始于名字字段具有“Adalbert”的数据元组且结束于名字字段具有“Ivan”的数据元组的数据元组序列中,并且更具体地,被定位于在步骤208(参见图2)中确定的布置内(即,在名字字段具有“Crnko”的数据元组与名字字段具有“Damir”的数据元组之间)。
更具体地,由步骤210(参见图2)产生的表示包括在UI构件400的正部分432中的数据元组的一个子序列与UI构件400的负部分434中的数据元组的另一个子序列之间的搜索元组106(参见图1)。
在图4C中的按钮410、412、414和416具有以上针对图4A所描述的功能。
元组管理引擎104(参见图1)通过执行步骤212(参见图2)来显示并管理在图4C中的UI构件400。
图4D是根据本发明的实施例的在包含于所排序的数据元组集合内的数据元组的序列中的搜索元组的示例性表示,其中该表示是在图2的过程中生成、显示及管理的,并且其中在图4C中的数据元组基于在搜索元组内加入第二值而重新排序。在图4D中的UI构件400包括规则表401,该规则表401包括搜索表单402和标题单元404。用户通过在输入字段440中输入“197”而进行在搜索表单402中的第二输入,其中“Da”是先前在搜索表单402的输入字段430中输入的。也就是,具有作为名字字段的值的“Da”的以及作为高度(Height)字段的值的197的搜索元组106(参见图1)包含于搜索表单402内,并且在步骤202(参见图2)中接收。在这种情况下,S={name,height},S’={id,surname,birthdate,weight},并且搜索元组为s=(“Da”,197)。
响应于在输入字段440中的为197的用户输入,元组管理引擎104(参见图1)调用数据源来从数据元组集合110(参见图1)中取出数据元组,并且使用搜索元组中的值“Da”和197根据在步骤204(参见图2)中确定的比较关系108(参见图1)自动地对所取出的数据元组进行排序。自动排序由指示符436和446(例如,红色箭头)指示,该指示符436和446使排序类型与由在图4B中的指示符422指示的手动排序区分开。
元组管理引擎104(参见图1)在步骤208(参见图2)中基于比较关系108(参见图1)来确定在名字字段具有“Daniel”的数据元组与名字字段具有“Darije”的数据元组之间的搜索元组106(参见图1)的布置。因为在本例中,比较关系108(参见图1)认为在名字字段中的“Da”等于在数据元组中具有“Damir”、“Daniel”和“Darije”的名字字段值,所以比较关系然后基于在高度字段中的值来排序具有相等名字字段值的数据元组。由于在名字字段中具有“Damir”的数据元组内的为195的高度以及在名字字段中具有“Daniel”的数据元组内的为185的高度小于在搜索元组中的为197的高度,因而在名字字段中具有“Damir”和“Daniel”的数据元组连同已经在图4C的部分434内的数据元组一起被布置于负部分444内。而且,因为在名字字段具有“Darije”的数据元组中的为201的高度大于在搜索元组中的为197的高度,所以在名字字段中具有“Darije”的数据元组,连同在图4C的部分432中已经比具有“Darije”的数据元组大的数据元组一起,连同从所排序的数据元组集合110(参见图1)中取出以填充到部分442的表格中的行内的两个附加数据元组(即,在名字字段中具有“Ivana”的数据元组)一起,被布置于正部分442内。
元组管理引擎104(参见图1)在步骤210(参见图2)中生成包含于UI构件400内的表示,使得在名字字段中具有“Da”的且在高度字段中具有197的搜索元组106(参见图1)在开始于名字字段具有“Adalbert”的数据元组并且结束于名字字段具有“Ivana”的且ID字段具有16的数据元组的数据元组序列内,并且更具体地,被定位于在步骤208(参见图2)中确定的布置内(即,在名字字段具有“Daniel”的数据元组与名字字段具有“Darije”的数据元组之间)。
更具体地,由步骤210(参见图2)产生的表示包括在UI构件400的正部分442内的数据元组的一个子序列与UI构件400的负部分444内的数据元组的另一个子序列之间的搜索元组106(参见图1)。
在图4D中的按钮410、412、414和416具有以上针对图4A所描述的功能。
元组管理引擎104(参见图1)通过执行步骤212(参见图2)来显示并管理在图4D中的UI构件400。
图4E是根据本发明的实施例的在包含于所排序的数据元组集合内的数据元组的序列中的搜索元组的示例性显示,其中该显示由在图3A-3B的过程中对在图4D中的表示进行管理而产生。在图4E中的UI构件400包括规则表401,该规则表401包括搜索表单402和标题单元404。如同前面在图4C和图4D中所示出的,用户已经在搜索表单402中进行输入以包括在输入字段430中的“Da”以及在输入字段440中的197。也就是,具有作为名字字段的值的“Da”以及作为高度字段的值的197的搜索元组106(参见图1)包含于搜索表单402内,并且在步骤202(参见图2)中接收。数据元组集合110(参见图1)的自动排序基于分别由指示符436和446(例如,红色箭头)表示的在名字字段中的“Da”值和在高度字段中的197值。指示符436和446将自动排序与由图4B中的指示符422指示的手动排序区分开。在这种情况下,S={name,height},S’={id,surname,birthdate,weight},并且搜索元组是s=(“Da”,197)。
要将UI构件400从图4D中的显示改变为图4E中的显示,用户激活上移数据元组按钮416以在步骤308(参见图3A)中将偏移从0改变为6。在步骤308中的值d为6,因为偏移改变6(即,6–0=6)。响应于用户在在d=6的情况下激活上移数据元组按钮416,元组管理引擎104(参见图1)通过以下操作来更新在之前显示于图4D中的数据元组序列内的搜索元组的显示:
(1)去除在负部分444(参见图4D)的表格中的最上部6个行内的任何数据元组(即,去除最顶部的空数据元组以及在名字字段中具有下列值:“Adalbert”,“Albert”“Alberto”、“Bero”和“Crnko”的五个数据元组);
(2)将六个最小的数据元组从正部分442(参见图4D)移至负部分454(即,将在名字字段中具有下列值:“Darije”、“Dragica”、“Hrvoje”、“Hrvoje”、“Irena”和“Ivan”的数据元组移至负部分454);以及
(3)将来自已经在步骤206(参见图2)中排序的数据元组集合110(参见图1)的后续六个数据元组添加至正部分452。后续六个数据元组大于在正部分442(参见图4D)中的之前最大的数据元组。也就是,后六个数据元组在名字字段中具有下列值:“Marko”、“Tvrtko”、“Velimir”、“Zoltan”、“Zoran”和“Zoran”,这六个数据元组大于在之前的正部分442(参见图4D)中曾是最大的数据元组的在ID字段中具有16的且在名字字段中具有“Ivana”的数据元组。
如果用户在步骤314(参见图3B)中激活返回偏移0按钮410,则在图4E的UI构件400中的显示在步骤316(参见图3B)中通过改变回到在图4D的UI构件400中的显示来更新,其中偏移=0。
在图4D中的按钮410、412、414和416具有以上针对图4A所描述的功能。
元组管理引擎104(参见图1)通过执行步骤212(参见图2)来显示并管理在图4E中的UI构件400。
图5是根据本发明的实施例的用于指定在规则表构件与数据源之间的接口的定义的示例图,其中数据源包括在图2的过程中管理的数据元组集合,并且该规则表构件定义其布置在图3A-3B的过程中确定的搜索元组。示意图500包括构件502、504和506,以及接口508。在用于指定规则表的构件502与用于指定底层数据源的构件504之间的接口508被严格地定义为具有数量固定的参数的调用。可以包括在步骤212(参见图2)中显示的表示的UI构件取决于数据源的接口和行为。数据源的实现方式可以是用于特定数据存储(即,构件506)的接口的实现。用于数据源实现方式的数据存储需要用于支持所需的数据源行为的能力。数据库一般地能够支持这样的数据源行为,并且数据源能够以可管理的工作量来成功实现。本发明并不限定于作为数据库的数据存储;本发明也可想得到其他类型的数据存储,例如,含有探针数据流的数据存储。需要更多的工作来支持规则表的缓存以及数据源同步。底层数据存储能够支持规则表缓存和数据源同步,或者这样的支持能够是用于在数据源中实现的附加任务。
计算机系统
图6是根据本发明的实施例的包含于图1的系统中的且用于实现图2和图3A-3B的过程的计算机系统的框图。图6所示的计算机系统包括计算机系统102,该计算机系统102一般地包括中央处理单元(CPU)602、存储器604、输入/输出(I/O)接口606以及总线608。此外,计算机系统102还耦接至I/O设备610和计算机数据存储单元612。
CPU602执行计算机系统102的计算和控制功能,包括执行包含于元组管理引擎614的程序代码(以下称为程序代码614)内的指令。包含于程序代码614内的指令由CPU602经由存储器604来执行。CPU602可以包括单个处理单元,或者分布于一个或多个位置中的一个或多个处理单元上(例如,在客户端和服务器上)。在一种实施例中,程序代码614包括在元组管理引擎104(参见图1)中的程序代码。
存储器604可以包括任何已知的计算机可读存储介质,这将在下文描述。在一种实施例中,存储器604的缓存存储器元素提供至少某种程序代码(例如,程序代码614)的临时存储,以便减少在程序代码的指令被执行时必须从块体存储中检索出代码的次数。而且,存储器604可以驻留于相应的单个物理位置(包括一种或多种类型的数据存储),或者分布于各种形式的多个物理系统上。此外,存储器604能够包括分布于例如局域网(LAN)或广域网(WAN)上的数据。
I/O接口606包括用于与外部源交换信息的任何系统。I/O设备610包括任何已知类型的外部设备,包括显示设备(例如,监视器)、键盘、鼠标、打印机、扬声器、手持式设备、传真机等。总线608提供在计算机系统102中的每个构件之间的通信链路,并且可以每个包括任何类型的传输链路,包括电的、光的、无线的等。
I/O接口606还允许计算机系统102将信息(例如,数据或程序指令,例如程序代码614)存储于计算机数据存储单元612或者另一个计算机的数据存储单元(未示出)上以及从其中检索出信息。计算机数据存储单元612可以包括任何已知的计算机可读存储介质,这将在下文描述。例如,计算机数据存储单元612可以是非易失性数据存储设备,例如,磁盘驱动器(即,硬盘驱动器)或者光盘驱动器(例如,用于接收CD-ROM光盘的CD-ROM驱动器)。
存储器604和/或存储单元612可以存储包括由CPU602经由存储器604来执行以管理数据元组集合的指令的程序代码614。虽然图6示出了作为包括程序代码614的存储器604,但是本发明可想得到其中存储器604不同时包括全部程序代码614的,而是一次只包含程序代码614的一部分的实施例。
此外,存储器604可以包括图6未示出的其他系统,例如,在CPU602上运行的并且提供在计算机系统102内的和/或与其连接的各种构件的控件的操作系统。
存储单元612和/或与计算机系统102耦接的一个或多个其他计算机的数据存储单元(未示出)可以存储搜索元组106(参见图1)、比较关系108(参见图1)、数据元组集合110(参见图1)和/或UI构件112(参见图1)。
如同本领域技术应当意识到的,本发明可以被实现为系统、方法或计算机程序产品。因此,本发明的一种实施例的一个方面可以采取完全硬件方面的、完全软件方面(包括固件、驻留软件、微代码等)或者将在此可以全部可以一般地称为“模块”的软件和硬件方面进行结合的方面的形式。而且,本发明的一种实施例可以采取以一个或多个计算机可读介质实现的计算机程序产品的形式(例如,存储器604和/或计算机数据存储单元612),该介质具有实现或存储于其上的计算机可读程序代码(例如,程序代码614)。
一个或多个计算机可读介质(例如,存储器604和计算机数据存储单元612)的任何组合都可以使用。计算机可读介质可以是(1)计算机可读存储介质或者(2)计算机可读信号介质。如同本文所使用的,计算机可读存储介质不是计算机可读信号介质。在本文的背景中,计算机可读存储介质是能够含有或存储由用于执行程序中的指令的系统、装置或设备使用或者结合其使用的程序(例如,程序代码614)的物理的、有形的存储介质,并且该存储介质不是信号本身并且不是信号传输的临时形式。
在一种实施例中,计算机可读存储介质是物理的、有形的计算机可读存储设备或者物理的、有形的计算机可读存储装置,该存储设备或存储装置不是信号本身并且不是信号传输的临时形式。计算机可读存储介质可以是不是信号本身的并且不是信号传输的临时形式的例如电子的、磁的、光的、电磁的或半导体的系统、装置、设备或上述项的任何合适组合。计算机可读存储介质的更多具体实例的非穷尽性列表包括:具有一个或多个导线电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光存储设备、磁存储设备,或者上述项的任何合适组合,其中上述更多的具体实例不包括信号本身或信号传输的临时形式。
计算机可读信号介质可以包括具有实现于其内的计算机可读程序代码的传播的数据信号,例如,在基带内或者作为载波的一部分。这样传播的信号可以采用多种形式中的任一种,包括(但不限于):电磁的、光的,或者它们的任何合适组合。计算机可读信号介质可以是不是(如上所述的)计算机可读存储介质的,而是能够通信、传播或传输由用于执行指令的系统、装置或设备使用或者结合其使用的程序任何计算机可读介质。
实现于计算机可读介质上的程序代码(例如,程序代码614)可以使用任何合适的介质来传输,包括(但不限于):无线、有线、光纤、射频(RF)等,或者上述项的任何合适组合。
用于执行本发明的各方面的操作的计算机程序代码(例如,程序代码614)可以用一种或多种编程语言的任何组合来编写,包括面向对象的编程语言,例如,、Smalltalk、C++等,以及常规过程编程语言,例如,“C”编程语言或类似的编程语言。程序代码的指令可以完全在用户的计算机上,部分在用户的计算机上,作为独立软件包,部分在用户的计算机上且部分在远程计算机上或者完全在远程计算机或服务器上实现,其中上述用户的计算机、远程计算机和服务器可以是例如计算机系统102或另一个计算机系统(未示出)具有与计算机系统102的构件类似的构件。在后一种情形中,远程计算机可以通过任何类型的网络(未示出)(包括LAN或WAN)与用户的计算机连接,或者可以与外部计算机进行连接(例如,通过使用互联网服务提供商的互联网)。
本发明的各方面在此参照根据本发明的实施例的方法、装置(系统)(例如,图1和图6)及计算机程序产品的流程图(例如,图2和图3A-3B)和/或框图来描述。应当理解,流程图和/或框图的每个块以及在流程图和/或框图中的块的组合能够通过计算机程序指令(例如,程序代码614)来实现。这些计算机程序指令可以被提供给通用计算机、专用计算机或者其他可编程数据处理装置的一个或多个硬件处理器(例如,CPU602)以产生机器,使得经由计算机或其他可编程数据处理装置的处理器来执行的指令创建出用于实现在流程图和/或框图的一个或多个块中指出的功能/动作的装置。
这些计算机程序指令同样可以存储于计算机可读介质(例如,存储器604或计算机数据存储单元612)内,这些这些计算机程序指令能够引导计算机(例如,计算机系统102)、其他可编程数据处理装置或其他设备按照特定的方式来运行,使得存储于计算机可读介质内的指令(例如,程序代码614)产生出包含指令用于实现在流程图和/或框图的一个或多个块中指出的功能/动作的制造品。
计算机程序指令还可以被装载到计算机(例如,计算机系统102)、其他可编程数据处理装置或其他设备上,以促使在计算机、其他可编程装置或其他设备上执行一系列的操作步骤,以产生出计算机实现的过程,使得在计算机、其他可编程装置或其他设备上实现的指令(例如,程序代码614)提供用于实现在流程图和/或框图的一个或多个块中指出的功能/动作的过程。
本发明的一种实施例的任何构件能够由用于提供针对管理数据元组集合而部署或集成计算基础设施的服务提供商来部署,管理,维护等。因而,本发明的一种实施例公开了用于支持计算机基础设施的过程,其中该过程包括用于为在包括一个或多个处理器(例如,CPU602)的第二计算机系统(例如,计算机系统102)中集成、容纳、保持和部署计算机可读代码(例如,程序代码614)中的至少一项提供至少一种支持服务的第一计算机系统,其中该处理器执行包含于代码内的指令,从而促使第二计算机系统管理数据元组集合。
在另一种实施例中,本发明提供一种用于在订阅、广告和/或收费的基础上执行本发明的过程步骤的方法。也就是,服务提供商(例如,解决方案集成商)能够提供用于创建、维护、支持等用于管理数据元组集合的过程。在这种情况下,服务提供商能够对用于执行一个或多个客户的本发明的过程步骤的计算机基础设施进行创建、维护、支持等。进而,服务提供商能够在订阅和/或付费的条件下接收来自客户的支付,和/或服务提供商能够接收来自对一个或多个第三方的广告内容的销售的支付。
在图2和图3A-3B中的流程图以及在图1和图6中的框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的体系的可能实现方式的结构、功能和操作。在这方面,在流程图或框图中的每个块可以表示包括用于实现具体逻辑功能的一个或多个可执行指令的代码(例如,程序代码614)的模块、段或部分。还应当注意,在某些可替换的实现方式中,在块中所提到的功能可以按照与附图所提到的顺序不同的顺序出现。例如,连续示出的两个块实际上可以基本上同时执行,或者块有时可以按相反的顺序来执行,取决于所涉及的功能。还应当注意,框图和/或流程图的每个块,以及在框图和/或流程图中的块的组合,能够通过基于用于执行指定功能或动作专用硬件的系统或者专用的硬件和计算机执行的组合来实现。
虽然本文出于说明的目的已经描述了本发明的实施例,但是本领域技术人员应当清楚许多修改和变更。因此,所附的权利要求书意指包括落入本发明的精神和范围之内的所有此类修改和变更。
Claims (17)
1.一种用于管理数据元组集合的方法,所述方法包括下列步骤:
计算机接收包括k个元素的搜索元组,k是整数且k≥1;
所述计算机确定用于指定元组排序的比较关系,每个元组包括k个元素;
所述计算机通过使用所述比较关系并且基于包含于每个数据元组内的k个元素的值和包含于所接收的搜索元组内的的k个元素的对应值来对所述数据元组集合进行排序;
基于所述比较关系,所述计算机确定所述搜索元组在所排序的数据元组集合内的两个连续的数据元组之间的布置,使得(1)所述两个连续的数据元组的一个,是所排序的数据元组中的、其k个元素包括一个值小于所述搜索元组中包括的k个元素的一个对应元素的值的数据元组中最接近于所述搜索元组的数据元组,所述两个连续的数据元组的另一个,是所排序的数据元组中的、其k个元素包括一个值大于或等于所述搜索元组中包括的k个元素的一个对应元素的值的数据元组中最接近于所述搜索元组的数据元组,或者(2)所述两个连续的数据元组的一个,是所排序的数据元组中的、其k个元素包括一个值小于或等于所述搜索元组中包括的k个元素的一个对应元素的值的数据元组中最接近于所述搜索元组的数据元组,所述两个连续的数据元组的另一个,是所排序的数据元组中的、其k个元素包括一个值大于所述搜索元组中包括的k个元素的一个对应元素的值的数据元组中最接近于所述搜索元组的数据元组;以及
基于使得所述搜索元组在所述两个连续的数据元组之间的所述布置,所述计算机生成所述搜索元组的表示和包含于所排序的数据元组集合中的一个数据元组序列,使得所述搜索元组在所述数据元组序列的第一子序列与第二子序列之间被显示,第一子序列包括所述两个连续的数据元组的一个,第二子序列包括所述两个连续的数据元组的另一个。
2.根据权利要求1所述的方法,还包括下列步骤:
继所述计算机生成所述表示的步骤之后,所述计算机接收选择以(1)使所述表示在所排序的数据元组集合之内上移d个数据元组;或者(2)使所述表示在所排序的数据元组集合之内下移d个数据元组,d是整数且d≥1;
响应于接收所述选择的步骤,并且如果所接收的选择是上移d个数据元组,则所述计算机通过下列操作来生成所述表示的修改:
从所述第一子序列中去除第一d个数据元组;
移动来自所述第二子序列的第一d个数据元组以使其为所述第一子序列中的最后d个数据元组;
取出在所排序的数据元组集合中的比所述第二子序列中的最后数据元组大的随后d个数据元组并将其添加至所述第二子序列,使得所添加的随后d个数据元组成为在所述第二子序列内的新的最后d个数据元组;并且
继从所述第一子序列中去除所述第一d个数据元组的步骤之后,移动来自所述第二子序列的所述第一d个数据元组,并且取出随后d个数据元组并将其添加至所述第二子序列,创建具有一个部分和另一个部分的所述表示的所述修改,使得所述第一子序列在所述表示的所述一个部分内,所述第二子序列在所述表示的所述另一个部分内,并且所述搜索元组在所述一个部分与所述另一个部分之间;以及
响应于接收所述选择的步骤,并且如果所接收的选择是下移d个数据元组,则所述计算机通过下列操作来生成所述表示的修改:
从所述第二子序列中去除最后d个数据元组;
移动来自所述第一子序列的最后d个数据元组以使其为所述第二子序列中的第一d个数据元组;
取出在所排序的数据元组集合中的比所述第一子序列内的第一数据元组小的随后d个数据元组并将其添加至所述第一子序列,使得所添加的随后d个数据元组成为在所述第一子序列内的新的第一d个数据元组;以及
继从所述第二子序列中去除最后d个数据元组的步骤之后,移动来自所述第一子序列的最后d个数据元组,并且取出随后d个数据元组并将其添加至所述第一子序列,创建具有一个部分和另一个部分的所述表示的所述修改,使得第一子序列在所述表示的所述一个部分内,第二子序列在所述表示的所述另一个部分内,并且所述搜索元组在所述一个部分与所述另一个部分之间。
3.根据权利要求2所述的方法,还包括下列步骤:
继生成所述表示的所述修改的步骤之后,如果所接收的选择是上移d个数据元组或者下移d个数据元组,则所述计算机接收第二选择以将所述表示返回至由所述生成搜索元组的表示和包含于所排序的数据元组集合中的一个数据元组序列的步骤产生的原始表示;以及
响应于接收所述第二选择的步骤,所述计算机重新生成所述搜索元组和所述数据元组序列的表示。
4.根据权利要求1所述的方法,其中生成所述搜索元组和所述数据元组序列的表示的步骤包括以下步骤:生成使得不需要在所述第一子序列内的值以及在所述第二子序列内的值具有在阈值量之内的与所述搜索元组的所述k个元素的任何值的接近度的表示。
5.根据权利要求1所述的方法,其中生成所述搜索元组和所述数据元组序列的表示的步骤包括以下步骤:所述计算机生成在单一页上的表示,不管在所述数据元组集合内有多少数据元组与所述搜索元组匹配。
6.根据权利要求1所述的方法,还包括所述计算机提供的单个用户界面(UI)构件的步骤,所述单个用户界面包括具有用于接收包含于所述搜索元组内的所述k个元素的值的输入字段的搜索表单,其中生成所述表示的步骤包括所述在所述单个UI构件中生成所述表示的步骤。
7.根据权利要求6所述的方法,还包括下列步骤:
继在所述单个UI构件中生成所述表示的步骤之后,所述计算机在包含于所述单个UI构件内的所述搜索表单中接收包含于所述搜索元组内的所述k个元素之一的值的更新;
基于所接收的所述值的更新并且基于所述比较关系,所述计算机自动地更新所述搜索元组的所述布置使得所述搜索元组在所排序的数据元组集合中的其他两个连续的数据元组之间;以及
基于所接收的所述值的更新并且基于在所述其他两个连续的数据元组之间的所述搜索元组的所述更新布置,所述计算机在包含于所排序的数据元组集合内的另一个数据元组序列当中生成所述搜索元组的更新表示,所述另一个序列包括至少所述其他两个连续的数据元组。
8.根据权利要求6所述的方法,还包括下列步骤:
继在所述单个UI构件中生成所述表示的步骤之后,所述计算机在包含于所述单个UI构件内的所述搜索表单中接收包含于所述搜索元组内的另一个元素的值,所述另一个元素不同于包含于所述搜索元组内的所述k个元素之一;
基于在所述搜索表单中的所接收的所述另一个元素的值,所述计算机通过使用所述比较关系对所述数据元组集合重新进行排序;
所述计算机自动地更新所述搜索元组的所述布置使得所述搜索元组在包含于所述数据元组的重排序集合内的其他两个连续的数据元组之间;并且
基于所述搜索元组在所述其他两个连续的数据元组之间的所述更新布置,所述计算机在包含于所排序的数据元组集合内的另一个数据元组序列当中生成所述搜索元组的更新表示,所述另一个序列包括至少所述其他两个连续的数据元组。
9.一种计算机系统,包括:
中央处理单元(CPU);
与所述CPU耦接的存储器;
与所述CPU耦接的计算机可读的有形存储设备,所述存储设备含有经由所述存储器由所述CPU执行以实现一种用于管理数据元组集合的方法的指令,所述方法包括下列步骤:
所述计算机系统接收包括k个元素的搜索元组,k是整数且k≥1;
所述计算机系统确定用于指定元组排序的比较关系,每个元组包括k个元素;
所述计算机系统通过使用所述比较关系并且基于包含于每个数据元组内的k个元素的值和包含于所接收的搜索元组内的的k个元素的对应值来对所述数据元组集合进行排序;
基于所述比较关系,所述计算机系统确定所述搜索元组在所排序的数据元组集合内的两个连续的数据元组之间的布置,使得(1)所述两个连续的数据元组的一个,是所排序的数据元组中的、其k个元素包括一个值小于所述搜索元组中包括的k个元素的一个对应元素的值的数据元组中最接近于所述搜索元组的数据元组,所述两个连续的数据元组的另一个,是所排序的数据元组中的、其k个元素包括一个值大于或等于所述搜索元组中包括的k个元素的一个对应元素的值的数据元组中最接近于所述搜索元组的数据元组,或者(2)所述两个连续的数据元组的一个,是所排序的数据元组中的、其k个元素包括一个值小于或等于所述搜索元组中包括的k个元素的一个对应元素的值的数据元组中最接近于所述搜索元组的数据元组,所述两个连续的数据元组的另一个,是所排序的数据元组中的、其k个元素包括一个值大于所述搜索元组中包括的k个元素的一个对应元素的值的数据元组中最接近于所述搜索元组的数据元组;以及
基于使得所述搜索元组在所述两个连续的数据元组之间的所述布置,所述计算机系统生成所述搜索元组的表示和包含于所排序的数据元组集合中的一个数据元组序列,使得所述搜索元组在所述数据元组序列的第一子序列与第二子序列之间被显示,第一子序列包括所述两个连续的数据元组的一个,第二子序列包括所述两个连续的数据元组的另一个。
10.根据权利要求9所述的计算机系统,其中所述方法还包括下列步骤:
继所述计算机系统生成所述表示的步骤之后,所述计算机系统接收选择以(1)使所述表示在所排序的数据元组集合之内上移d个数据元组或者(2)使所述表示在所排序的数据元组集合之内下移d个数据元组,d是整数且d≥1;
响应于接收所述选择的步骤,并且如果所接收的选择是上移d个数据元组,则所述计算机系统通过下列操作来生成所述表示的修改:
从所述第一子序列中去除第一d个数据元组;
移动来自所述第二子序列的第一d个数据元组以使其为所述第一子序列中的最后d个数据元组;
取出在所排序的数据元组集合中的比所述第二子序列中的最后数据元组大的随后d个数据元组并将其添加至所述第二子序列,使得所添加的随后d个数据元组成为在所述第二子序列内的新的最后d个数据元组;以及
继从所述第一子序列中去除所述第一d个数据元组的步骤之后,移动来自所述第二子序列的所述第一d个数据元组,并且取出随后d个数据元组并将其添加至所述第二子序列,创建具有一个部分和另一个部分的所述表示的所述修改,使得所述第一子序列在所述表示的所述一个部分内,所述第二子序列在所述表示的所述另一个部分内,并且所述搜索元组在所述一个部分与所述另一个部分之间;以及
响应于接收所述选择的步骤,并且如果所接收的选择是下移d个数据元组,则所述计算机系统通过下列操作来生成所述表示的修改:
从所述第二子序列中去除最后d个数据元组;
移动来自所述第一子序列的最后d个数据元组以使其为所述第二子序列中的第一d个数据元组;
取出在所排序的数据元组集合中的比所述第一子序列内的第一数据元组小的随后d个数据元组并将其添加至所述第一子序列,使得所添加的随后d个数据元组成为在所述第一子序列内的新的第一d个数据元组;以及
继从所述第二子序列中去除最后d个数据元组的步骤之后,移动来自所述第一子序列的最后d个数据元组,并且取出随后d个数据元组并将其添加至所述第一子序列,创建具有一个部分和另一个部分的所述表示的所述修改,使得第一子序列在所述表示的所述一个部分内,第二子序列在所述表示的所述另一个部分内,并且所述搜索元组在所述一个部分与所述另一个部分之间。
11.根据权利要求10所述的计算机系统,其中所述方法还包括下列步骤:
继生成所述表示的所述修改的步骤之后,如果所接收的选择是上移d个数据元组或者下移d个数据元组,则所述计算机系统接收第二选择以将所述表示返回至由所述生成搜索元组的表示和包含于所排序的数据元组集合中的一个数据元组序列的步骤产生的原始表示;以及
响应于接收所述第二选择的步骤,所述计算机系统重新生成所述搜索元组和所述数据元组序列的表示。
12.根据权利要求9所述的计算机系统,其中生成所述搜索元组和所述数据元组序列的表示的步骤包括以下步骤:生成使得不需要在所述第一子序列内的值以及在所述第二子序列内的值具有在阈值量之内的与所述搜索元组的所述k个元素的任何值的接近度的表示。
13.一种用于支持计算基础设施的方法,所述方法包括以下步骤:
第一计算机系统为在第二计算机系统内创建、集成、托管、保持及部署计算机可读代码中的至少一项提供至少一种支持服务,所述计算机可读代码含有指令,其中所述指令在由所述第二计算机系统的处理器执行时可实现一种用于管理数据元组集合的方法,所述方法包括下列步骤:
所述第二计算机系统接收包括k个元素的搜索元组,k是整数且k≥1;
所述第二计算机系统确定用于指定元组排序的比较关系,每个元组包括k个元素;
所述第二计算机系统通过使用所述比较关系并且基于包含于每个数据元组内的k个元素的值和包含于所接收的搜索元组内的k个元素的对应值来对所述数据元组集合进行排序;
基于所述比较关系,所述第二计算机系统确定所述搜索元组在所排序的数据元组集合内的两个连续的数据元组之间的布置,使得(1)所述两个连续的数据元组的一个,是所排序的数据元组中的、其k个元素包括一个值小于所述搜索元组中包括的k个元素的一个对应元素的值的数据元组中最接近于所述搜索元组的数据元组,所述两个连续的数据元组的另一个,是所排序的数据元组中的、其k个元素包括一个值大于或等于所述搜索元组中包括的k个元素的一个对应元素的值的数据元组中最接近于所述搜索元组的数据元组,或者(2)所述两个连续的数据元组的一个,是所排序的数据元组中的、其k个元素包括一个值小于或等于所述搜索元组中包括的k个元素的一个对应元素的值的数据元组中最接近于所述搜索元组的数据元组,所述两个连续的数据元组的另一个,是所排序的数据元组中的、其k个元素包括一个值大于所述搜索元组中包括的k个元素的一个对应元素的值的数据元组中最接近于所述搜索元组的数据元组;以及
基于使得所述搜索元组在所述两个连续的数据元组之间的所述布置,所述第二计算机系统生成所述搜索元组和包含于所排序的数据元组集合中的一个数据元组序列的表示,使得所述搜索元组在所述数据元组序列的第一子序列与第二子序列之间被显示,第一子序列包括所述两个连续的数据元组的一个,第二子序列包括所述两个连续的数据元组的另一个。
14.根据权利要求13所述的方法,其中所述方法还包括下列步骤:
继所述第二计算机系统生成所述表示的步骤之后,所述第二计算机系统接收选择以(1)使所述表示在所排序的数据元组集合之内上移d个数据元组;或者(2)使所述表示在所排序的数据元组集合之内下移d个数据元组,d是整数且d≥1;
响应于接收所述选择的步骤,并且如果所接收的选择是上移d个数据元组,则所述第二计算机系统通过下列操作来生成所述表示的修改:
从所述第一子序列中去除第一d个数据元组;
移动来自所述第二子序列的第一d个数据元组以使其为所述第一子序列中的最后d个数据元组;
取出在所排序的数据元组集合中的比所述第二子序列中的最后数据元组大的随后d个数据元组并将其添加至所述第二子序列,使得所添加的随后d个数据元组成为在所述第二子序列内的新的最后d个数据元组;以及
继从所述第一子序列中去除所述第一d个数据元组的步骤之后,移动来自所述第二子序列的所述第一d个数据元组,并且取出随后d个数据元组并将其添加至所述第二子序列,创建具有一个部分和另一个部分的所述表示的所述修改,使得所述第一子序列在所述表示的所述一个部分内,所述第二子序列在所述表示的所述另一个部分内并且所述搜索元组在所述一个部分与所述另一个部分之间;以及
响应于接收所述选择的步骤,并且如果所接收的选择是下移d个数据元组,则所述第二计算机系统通过下列操作来生成所述表示的修改:
从所述第二子序列中去除最后d个数据元组;
移动来自所述第一子序列的最后d个数据元组以使其为所述第二子序列中的第一d个数据元组;
取出在所排序的数据元组集合中的比所述第一子序列内的第一数据元组小的随后d个数据元组并将其添加至所述第一子序列,使得所添加的随后d个数据元组成为在所述第一子序列内的新的第一d个数据元组;以及
继从所述第二子序列中去除最后d个数据元组的步骤之后,移动来自所述第一子序列的最后d个数据元组,并且取出随后d个数据元组并将其添加至所述第一子序列,创建具有一个部分和另一个部分的所述表示的所述修改,使得所述第一子序列在所述表示的所述一个部分内,所述第二子序列在所述表示的所述另一个部分内,并且所述搜索元组在所述一个部分与所述另一个部分之间。
15.一种用于管理数据集合的方法,所述方法包括下列步骤:
计算机接收包括k个值的搜索元组,k是整数且k≥1;
所述计算机接收用于指定从所述数据集合中取出多少数据元组使得包含于所述数据集合内的数据元组的序列的表示符合由用户观看的单个页面的一个或多个参数;
所述计算机接收用于指定包含于所述数据集合内的数据元组的排序的比较关系,所述排序基于包含于所述搜索元组内的所述k个值;
基于所述比较关系并且基于所述k个值,所述计算机通过对包含于所述数据集合内的全部所述数据元组进行排序来对所述数据集合进行排序;
所述计算机基于所述k个值来确定包含于所排序的数据集合内的与所述搜索元组最紧密匹配的数据元组;以及
所述计算机从所排序的数据集合中取出所排序的数据元组的序列,使得所述序列包括m个有序数据元组和n个有序数据元组,m≥1,n≥1,并且取出所排序的数据元组的序列的步骤包括:
从所排序的数据集合中取出所述最紧密的匹配;
取出在所排序的数据集合中的最接近于且小于所述最紧密匹配的所述m个有序数据元组,所述m个有序数据元组基于所接收的一个或多个参数来取出,不需要所述m个有序数据元组中的任一个具有在阈值之内的与所述最紧密匹配的或者与所述搜索元组的接近度;以及
取出在所排序的数据集合中的最接近于且大于或等于所述最紧密匹配的所述n个有序数据元组,所述n个有序数据元组基于所接收的一个或多个参数来取出,不需要所述n个有序数据元组中的任一个具有在所述阈值之内的与所述最紧密匹配的或者与所述搜索元组的所述接近度;以及
所述计算机生成在由用户观看的所述单个页面上的表示,所述表示具有第一部分、第二部分及第三部分,使得所述m个有序数据元组包含于所述表示的所述第一部分内,所述n个有序数据元组包含于所述表示的所述第二部分内,并且所述最紧密匹配包含于所述表示的所述第三部分内。
16.根据权利要求15所述的方法,还包括所述计算机提供搜索表单,其中接收包括所述k个值的所述搜索元组的步骤包括在所述搜索表单的输入字段内接收所述k个值,并且其中生成所述表示的步骤包括生成在所述单个页面上的表示,使得所述搜索表单在所述表示的所述第一部分和第二部分之间,并且使得所述第三部分包括在所述表示的所述第一部分和第二部分之间的所述最紧密匹配。
17.根据权利要求16所述的方法,还包括下列步骤:
继生成所述表示的步骤之后,所述计算机在所述搜索表单中接收值,所接收的值是在所述搜索元组内的新值或者包含于所述搜索元组内的更新值;
部分地基于所接收的值,所述计算机确定包含于所排序的数据集合内的另一个数据元组是与包括所接收的值的所述搜索元组间的新的最紧密匹配;
所述计算机通过从所排序的数据集合中取出所述新的最紧密匹配、在所排序的数据集合中的最接近于且小于所述新的最紧密匹配的另一m个有序数据元组、以及在所排序的数据集合中的最接近于且大于或等于所述新的最紧密匹配的另一n个有序数据元组而从所排序的数据集合中取出有序数据元组的另一个序列;以及
所述计算机更新在由用户观看的所述单个页面上的所述表示,所更新的表示具有所述第一、第二及第三部分,使得所述另一m个有序数据元组包含于所更新的表示的所述第一部分内,所述另一n个有序数据元组包含于所更新的表示的所述第二部分内,并且所述新的最紧密匹配包含于所更新的表示的所述第三部分内,不需要所述数据元组中的任一个在所更新的表示中匹配所述搜索元组,并且不需要所述数据元组中的任一个在所更新的表示中具有在所述阈值内的所述接近度。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/661,236 US8892576B2 (en) | 2012-10-26 | 2012-10-26 | Ordering and presenting a set of data tuples |
US13/661,236 | 2012-10-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103793451A CN103793451A (zh) | 2014-05-14 |
CN103793451B true CN103793451B (zh) | 2017-11-03 |
Family
ID=50548687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310510518.5A Expired - Fee Related CN103793451B (zh) | 2012-10-26 | 2013-10-25 | 用于排序并表示数据元组集合的系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8892576B2 (zh) |
CN (1) | CN103793451B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9531677B1 (en) * | 2014-05-07 | 2016-12-27 | Skyport Systems, Inc. | Method and system for managing network access |
CN106250381B (zh) * | 2015-06-04 | 2020-11-17 | 微软技术许可有限责任公司 | 用于确定表格式存储的列布局的系统和方法 |
US10678562B2 (en) | 2016-11-17 | 2020-06-09 | K&M Systems, Inc. | Systems and methods for facilitating real-time analytics |
CN107133208B (zh) * | 2017-03-24 | 2021-08-24 | 南京柯基数据科技有限公司 | 一种实体抽取的方法及装置 |
CN109408512A (zh) * | 2018-10-22 | 2019-03-01 | 武汉达梦数据库有限公司 | 一种数据库排序位置移动方法 |
CN110046308B (zh) * | 2019-03-07 | 2021-05-25 | 北京搜狗科技发展有限公司 | 一种排序策略确定方法、装置和电子设备 |
JP7283426B2 (ja) * | 2019-09-30 | 2023-05-30 | 豊田合成株式会社 | サイドエアバッグ装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6192373B1 (en) * | 1998-05-15 | 2001-02-20 | International Business Machines Corp. | Managing directory listings in a relational database |
CN1856783A (zh) * | 2002-07-26 | 2006-11-01 | 罗恩·埃弗里特 | 使用参考与一般数据项关联的数据管理结构 |
CN102043866A (zh) * | 2011-01-25 | 2011-05-04 | 苏州普达新信息技术有限公司 | 基于表单特征的松弛搜索与优化排序方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6175830B1 (en) * | 1999-05-20 | 2001-01-16 | Evresearch, Ltd. | Information management, retrieval and display system and associated method |
US7188100B2 (en) * | 2000-02-25 | 2007-03-06 | Joseph De Bellis | Search-on-the-fly report generator |
US20050204385A1 (en) * | 2000-07-24 | 2005-09-15 | Vivcom, Inc. | Processing and presentation of infomercials for audio-visual programs |
US7406443B1 (en) | 2000-12-18 | 2008-07-29 | Powerloom | Method and system for multi-dimensional trading |
JP4136594B2 (ja) * | 2002-10-25 | 2008-08-20 | 株式会社ターボデータラボラトリー | データ処理方法およびデータ処理プログラム |
US7363581B2 (en) * | 2003-08-12 | 2008-04-22 | Accenture Global Services Gmbh | Presentation generator |
US7191171B2 (en) * | 2003-12-12 | 2007-03-13 | Alpine Electronics, Inc. | Data representation and retrieval method and apparatus for high speed data search and retrieval |
EP1800227A2 (en) * | 2004-10-04 | 2007-06-27 | Clearpace Software Limited | Method and system for implementing an enhanced database |
US7539668B2 (en) * | 2004-11-30 | 2009-05-26 | International Business Machines Corporation | System and method for sorting data records contained in a query result based on suitability score |
US7293022B2 (en) * | 2005-04-14 | 2007-11-06 | International Business Machines Corporation | List update employing neutral sort keys |
JP5361479B2 (ja) * | 2009-03-17 | 2013-12-04 | キヤノン株式会社 | ジョブ管理装置、制御方法及びプログラム |
US8832077B1 (en) * | 2011-05-04 | 2014-09-09 | Google Inc. | Selectively retrieving search results in accordance with different logical relationships |
-
2012
- 2012-10-26 US US13/661,236 patent/US8892576B2/en not_active Expired - Fee Related
-
2013
- 2013-10-25 CN CN201310510518.5A patent/CN103793451B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6192373B1 (en) * | 1998-05-15 | 2001-02-20 | International Business Machines Corp. | Managing directory listings in a relational database |
CN1856783A (zh) * | 2002-07-26 | 2006-11-01 | 罗恩·埃弗里特 | 使用参考与一般数据项关联的数据管理结构 |
CN102043866A (zh) * | 2011-01-25 | 2011-05-04 | 苏州普达新信息技术有限公司 | 基于表单特征的松弛搜索与优化排序方法 |
Also Published As
Publication number | Publication date |
---|---|
US20140123055A1 (en) | 2014-05-01 |
US8892576B2 (en) | 2014-11-18 |
CN103793451A (zh) | 2014-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103793451B (zh) | 用于排序并表示数据元组集合的系统和方法 | |
US9805079B2 (en) | Executing constant time relational queries against structured and semi-structured data | |
AU2016359060B2 (en) | Storing and retrieving data of a data cube | |
CN104160394B (zh) | 用于半结构化数据的可缩放分析平台 | |
EP3066585B1 (en) | Generic indexing for efficiently supporting ad-hoc query over hierarchically marked-up data | |
US7580918B2 (en) | System and method of efficiently representing and searching directed acyclic graph structures in databases | |
CN102770849B (zh) | 当应用基于用户的安全性时优化数据高速缓存 | |
US10733172B2 (en) | Method and computing device for minimizing accesses to data storage in conjunction with maintaining a B-tree | |
US9229979B2 (en) | Optimizing parallel queries using interesting distributions | |
WO2020005937A1 (en) | Techniques for enabling and integrating in-memory semi-structered data and text document searches with in-memory columnar query processing | |
WO2011080775A1 (en) | Method and system for carrying out searches in a database | |
US20200042637A1 (en) | Flattening hierarchal database records using inverted indexing | |
CN108959538A (zh) | 全文检索系统及方法 | |
US11853756B2 (en) | Calculation engine for performing calculations based on dependencies in a self-describing data system | |
US10528538B2 (en) | Leveraging SQL with user defined aggregation to efficiently merge inverted indexes stored as tables | |
US20200159712A1 (en) | Database engine for amorphous data sets | |
JP5430436B2 (ja) | 情報蓄積検索方法及び情報蓄積検索プログラム | |
US11663271B1 (en) | Serverless search using an index database section | |
CN116680279A (zh) | 基于哈希索引的数据处理方法、系统、装置和计算机可读介质 | |
CN117349251A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171103 Termination date: 20201025 |