CN104881426A - 一种关键字查询方法与装置 - Google Patents
一种关键字查询方法与装置 Download PDFInfo
- Publication number
- CN104881426A CN104881426A CN201510133447.0A CN201510133447A CN104881426A CN 104881426 A CN104881426 A CN 104881426A CN 201510133447 A CN201510133447 A CN 201510133447A CN 104881426 A CN104881426 A CN 104881426A
- Authority
- CN
- China
- Prior art keywords
- key word
- grid
- minor increment
- data
- array
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种关键字查询方法与装置,其中,该方法包括:扫描定义范围内的每个物体,并获取每个物体的数据信息;将每个物体的数据信息构建为数据集合;获取查询请求,验证查询请求的合法性;若查询请求合法,则根据合法查询请求在数据集合中进行查询,并返回符合查询请求的结果。本发明将构建结果范围集合拆分为第一任务与第二任务并分别进行计算,避免了使用IR树,得以兼容大规模的数据运算,增强了扩展性;使用迭代算法构建结果范围集合可以保证获得的结果范围集合最优解,提高了工作效率。
Description
技术领域
本发明涉及信息处理技术,特别地,涉及一种关键字查询方法与装置。
背景技术
最近,随着大规模空间数据的出现,空间数据查询成为研究的热点。给定一组带有空间和文字描述的物体,一个空间关键词查询由一组关键字和位置信息构成。一个物体懂得文字描述含有制定关键字我们就说这个物体覆盖这个关键字。一个查询力图找到覆盖所有关键字的最近的物体。然而,在一些特定的应用中,只有一些物体的组合才能满足用户的需求;例如,一个游客想要找到附近一组感兴趣的地方,包括饭店、超市和旅馆;另一个例子是在交叉学科合作中,项目负责人往往想要找到不同领域的专家或者是具有不能技能的人。这样看来,一组物体协同的满足用户的需求可以用协同空间关键词查询确切的描述。
现有技术已经公开了基于IR树的协同空间关键词算法。在现有技术中,当待处理的数据集在增大时,算法被发现存在扩展性问题:构建IR树需要大量的时间和内存,并且找出的结果不能保证最优、效率低下;同时,不依赖索引的精确算法想要的到最优解需要大量的运行时间。
针对现有技术中协同空间关键词算法扩展性差、效率低下的问题,目前尚未有有效的解决方案。
发明内容
针对现有技术中协同空间关键词算法扩展性差、效率低下的问题,本发明的目的在于提出一种关键字查询方法与装置,能够兼容大规模的数据运算,扩展性好;且可以保证获得最优解,工作效率高。
基于上述目的,本发明提供的技术方案如下:
根据本发明的一个方面,提供了一种关键字查询方法,包括:
扫描定义范围内的每个物体,并获取每个物体的数据信息;
将每个物体的数据信息构建为数据集合;
获取查询请求,验证查询请求的合法性;
若查询请求合法,则根据合法查询请求在数据集合中进行查询,并返回符合查询请求的结果。
其中,每个物体的数据信息,包括每个物体的位置信息与关键字信息,其中,每个物体的关键字信息包括至少一关键字;获取查询请求,为获取一查询向量与一查询范围集合,其中,查询向量包括一查询位置信息与一查询关键字集合,其中,查询关键字集合包括至少一关键字,查询范围集合为数据集合的子集;验证查询请求的合法性,为判断查询范围集合中的每个物体元素是否都包含关键字集合中的至少一关键字,以及判断查询关键字集合是否为查询范围集合中的每个物体元素的关键字所组成的集合的子集,如果是,则认为查询请求合法;根据查询请求在数据集合中进行查询,为构建一结果范围集合,其中,结果范围集合为数据集合的子集,结果范围集合中的每个物体元素都包含关键字集合中的至少一关键字,查询关键字集合为结果范围集合中的每个物体元素的关键字所组成的集合的子集,并且结果范围集合与查询向量组成的损失函数应小于查询请求本身的加性损失函数,其中,加性损失函数为查询向量到查询范围集合或结果范围集合中每个物体元素的距离之和。
并且,访问数据集合,将数据集合分割为大小相同的多个网格,并为每个网格进行特异性编号,多个网格覆盖数据集合内所有的物体元素;根据每个网格覆盖数据集合内物体元素的实际情况,建立网格表与反向关键字表;根据网格表与反向关键字表获得数据集合的局部最优结果范围集合;根据局部最优结果范围集合构建有效物体数据集合,并根据有效物体数据集合构建结果范围集合。
并且,根据每个网格覆盖数据集合内物体元素的实际情况,建立网格表与反向关键字表包括:根据每个网格的特异性编号与每个网格各自覆盖的物体元素的数据信息,建立网格表,网格表记录了每个网格与数据集合内的物体元素的对应关系;根据每个网格的特异性编号、每个网格各自覆盖的物体元素的数据信息、以及物体元素的数据信息被存储的位置,建立反向关键字表,反向关键字表在每个网格的特异性编号、每个网格各自覆盖的物体元素的关键字信息、与物体元素的数据信息被存储的位置三者之间建立了对应关系,反向关键字表还在数据集合内的每个关键字与包含关键字的物体元素所在的每个网格的特异性编号二者之间建立了对应关系,在数据集合内包含某一关键字的所有物体元素均在反向关键字表中以一个对应关系进行表示。
并且,根据网格表与反向关键字表获得数据集合的局部最优结果范围集合包括:计算所有网格与查询向量所在网格的网格间距,其中,网格间距的数值等于从任意网格垂直移动到查询向量所在网格的同一水平线上穿过的网格数量值、与任意网格水平移动到查询向量所在网格的同一垂直线上穿过的网格数量值中,二者的较大值;建立局部最优有效结果范围集合,按照网格间距从小到大对所有网格进行排序,按照排序依次选取每一网格,并检查当前网格中的物体元素的关键字集合中是否包括查询向量的查询关键字集合中至少一关键字,且该关键字尚未被局部最优有效结果范围集合内的任何物体元素覆盖,如果是,则将当前网格中的物体元素加入局部最优有效结果范围集合中;检查查询向量中的所有查询关键字是否都被局部最优有效结果范围集合中所有物体元素的关键字集合的并集覆盖,若否,则按照网格排序选取下一个网格并以该网格作为当前网格重复进行上一步骤,直到查询向量中的所有查询关键字都能被局部最优有效结果范围集合中所有物体元素的关键字集合的并集覆盖。
并且,根据局部最优结果范围集合构建有效物体数据集合包括:根据局部最优结果范围集合与查询请求,计算局部最优结果范围集合的局部最优损失函数;建立有效物体数据集合,有效物体数据集合为数据集合的子集,有效物体数据集合是以查询向量为中心、以局部最优结果范围集合的局部最优损失函数为半径所构成的球体覆盖的所有数据集合中物体元素组成的集合。
具体地,根据有效物体数据集合构建结果范围集合包括:访问查询关键字集合,并根据查询关键字集合构建关键字排布集合,关键字排布集合为查询关键字集合的幂集合减去空集;建立最小距离数组与最小贡献物体数组,最小距离数组与最小贡献物体数组的长度数值等于关键字排布集合中元素的个数数值,最小距离数组与最小贡献物体数组的内容与关键字排布集合中的元素一一对应;依次指定关键字排布集合中每个元素为迭代关键字集合,并将迭代关键字集合与查询位置信息结合构成迭代向量;访问有效物体数据集合中的每个物体元素,并获取每个物体元素到迭代向量的最小距离、以及达成该最小距离的物体元素,并将迭代向量的最小距离存入最小距离数组内与关键字排布集合中当前元素相对应的位置上,并将达成该最小距离的物体元素存入最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上,其中,若关键字排布集合中当前元素未被有效物体数据集合中的任意物体元素的关键词所覆盖使得当前物体元素到迭代向量的最小距离不存在,则将正无穷存入最小距离数组内与关键字排布集合中当前元素相对应的位置上、以及最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上;根据有效物体数据集合建立有效物体对数据集合,有效物体对数据集合的元素为有效物体数据集合中的每两个不同物体元素进行组合的形成的物体对元素;访问有效物体对数据集合中的每个物体对元素,并获取每个物体对元素中两个物体元素各自到迭代向量的最小距离之和、以及达成该最小距离的物体对元素,并将迭代向量的最小距离之和与最小距离数组内与关键字排布集合中当前元素相对应的位置上的现有数字进行比对,若迭代向量的最小距离之和小于现有数字,则将现有数字置为迭代向量的最小距离之和,并清除最小贡献物体数组内与关键字排布集合中当前元素相对应位置上的内容,将达成该最小距离之和的物体对元素写入最小贡献物体数组内与关键字排布集合中当前元素相对应位置;依次指定关键字排布集合中每个元素为迭代关键字集合并执行上述步骤,直到关键字排布集合中的所有元素都被指定过;输出最小距离数组与最小贡献物体数组的最终结果,最小距离数组全数组之和为加性损失函数的最小值,最小贡献物体数组全数组所有元素组成的集合为结果范围集合。
进一步地,获取每个物体元素到迭代向量的最小距离、以及达成该最小距离的物体元素,并将迭代向量的最小距离存入最小距离数组内与关键字排布集合中当前元素相对应的位置上,并将达成该最小距离的物体元素存入最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上,为使用并行方式处理并写入数据;获取每个物体对元素中两个物体元素各自到迭代向量的最小距离之和、以及达成该最小距离的物体对元素,并将迭代向量的最小距离之和与最小距离数组内与关键字排布集合中当前元素相对应的位置上的现有数字进行比对,若迭代向量的最小距离之和小于现有数字,则将现有数字置为迭代向量的最小距离之和,并清除最小贡献物体数组内与关键字排布集合中当前元素相对应位置上的内容,将达成该最小距离之和的物体对元素写入最小贡献物体数组内与关键字排布集合中当前元素相对应位置,为使用串行方式处理并写入数据。
更进一步地,将每个物体的数据信息构建为数据集合,为将每个物体的数据信息存储在分布式文件系统中,并将数据信息按分布式文件系统的形式构建为数据集合;获取每个物体元素到迭代向量的最小距离、以及达成该最小距离的物体元素,并将迭代向量的最小距离存入最小距离数组内与关键字排布集合中当前元素相对应的位置上,并将达成该最小距离的物体元素存入最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上,为通过使用服务器控制分布式文件系统的多个物理地址的处理终端处理并写入数据,并将处理并写入的数据传送到服务器;获取每个物体对元素中两个物体元素各自到迭代向量的最小距离之和、以及达成该最小距离的物体对元素,并将迭代向量的最小距离之和与最小距离数组内与关键字排布集合中当前元素相对应的位置上的现有数字进行比对,若迭代向量的最小距离之和小于现有数字,则将现有数字置为迭代向量的最小距离之和,并清除最小贡献物体数组内与关键字排布集合中当前元素相对应位置上的内容,将达成该最小距离之和的物体对元素写入最小贡献物体数组内与关键字排布集合中当前元素相对应位置,为服务器接受前一步骤的数据,并在服务器本地进行运算,进一步处理并写入数据。
根据本发明的另一个方面,提供了一种关键字查询装置,包括:
一服务器,服务器连接至多个处理终端,服务器用于获取查询请求、验证查询请求的合法性、并根据查询请求访问多个处理终端、向多个处理终端分配第一处理任务、接收第一处理任务的结果并进行第二处理任务、将第二处理任务的结果输出;
多个处理终端,多个处理终端均连接至服务器,每个处理终端各连接至一分布式存储器,每个处理终端用于接收服务器分配的第一处理任务、访问分布式存储器中的数据、进行第一处理任务并将第一处理任务输出到服务器;
多个分布式存储器,每个分布式存储器各连接至一处理终端,多个分布式存储器用于联合存储数据集合中的所有数据信息。
其中,服务器建立网格表、建立反向关键字表、建立局部最优结果范围集合、建立有效物体数据集合,包括:服务器根据每个网格的特异性编号与每个网格各自覆盖的物体元素的数据信息,建立网格表,网格表记录了每个网格与数据集合内的物体元素的对应关系;服务器根据每个网格的特异性编号、每个网格各自覆盖的物体元素的数据信息、以及物体元素的数据信息被存储的位置,建立反向关键字表,反向关键字表在每个网格的特异性编号、每个网格各自覆盖的物体元素的关键字信息、与物体元素的数据信息被存储的位置三者之间建立了对应关系,反向关键字表还在数据集合内的每个关键字与包含关键字的物体元素所在的每个网格的特异性编号二者之间建立了对应关系,在数据集合内包含某一关键字的所有物体元素均在反向关键字表中以一个对应关系进行表示;服务器计算所有网格与查询向量所在网格的网格间距,其中,网格间距的数值等于从任意网格垂直移动到查询向量所在网格的同一水平线上穿过的网格数量值、与任意网格水平移动到查询向量所在网格的同一垂直线上穿过的网格数量值中,二者的较大值;服务器建立局部最优有效结果范围集合,按照网格间距从小到大对所有网格进行排序,按照排序依次选取每一网格,并检查当前网格中的物体元素的关键字集合中是否包括查询向量的查询关键字集合中至少一关键字,且该关键字尚未被局部最优有效结果范围集合内的任何物体元素覆盖,如果是,则将当前网格中的物体元素加入局部最优有效结果范围集合中;服务器检查查询向量中的所有查询关键字是否都被局部最优有效结果范围集合中所有物体元素的关键字集合的并集覆盖,若否,则按照网格排序选取下一个网格并以该网格作为当前网格重复进行上一步骤,直到查询向量中的所有查询关键字都能被局部最优有效结果范围集合中所有物体元素的关键字集合的并集覆盖;服务器根据局部最优结果范围集合与查询请求,计算局部最优结果范围集合的局部最优损失函数;服务器建立有效物体数据集合,有效物体数据集合为数据集合的子集,有效物体数据集合是以查询向量为中心、以局部最优结果范围集合的局部最优损失函数为半径所构成的球体覆盖的所有数据集合中物体元素组成的集合。
并且,依次指定关键字排布集合中每个元素为迭代关键字集合,并将迭代关键字集合与查询位置信息结合构成迭代向量;访问有效物体数据集合中的每个物体元素,并获取每个物体元素到迭代向量的最小距离、以及达成该最小距离的物体元素,并将迭代向量的最小距离存入最小距离数组内与关键字排布集合中当前元素相对应的位置上,并将达成该最小距离的物体元素存入最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上,其中,若关键字排布集合中当前元素未被有效物体数据集合中的任意物体元素的关键词所覆盖使得当前物体元素到迭代向量的最小距离不存在,则将正无穷存入最小距离数组内与关键字排布集合中当前元素相对应的位置上、以及最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上。
同时,根据有效物体数据集合建立有效物体对数据集合,有效物体对数据集合的元素为有效物体数据集合中的每两个不同物体元素进行组合的形成的物体对元素;访问有效物体对数据集合中的每个物体对元素,并获取每个物体对元素中两个物体元素各自到迭代向量的最小距离之和、以及达成该最小距离的物体对元素,并将迭代向量的最小距离之和与最小距离数组内与关键字排布集合中当前元素相对应的位置上的现有数字进行比对,若迭代向量的最小距离之和小于现有数字,则将现有数字置为迭代向量的最小距离之和,并清除最小贡献物体数组内与关键字排布集合中当前元素相对应位置上的内容,将达成该最小距离之和的物体对元素写入最小贡献物体数组内与关键字排布集合中当前元素相对应位置。
同时,服务器验证查询请求的合法性,为判断查询范围集合中的每个物体元素是否都包含关键字集合中的至少一关键字,以及判断查询关键字集合是否为查询范围集合中的每个物体元素的关键字所组成的集合的子集,如果是,则认为查询请求合法。
从上面所述可以看出,本发明提供的技术方案通过将构建结果范围集合拆分为第一任务与第二任务并分别进行计算,避免了使用IR树,得以兼容大规模的数据运算,增强了扩展性;使用迭代算法构建结果范围集合可以保证获得的结果范围集合最优解,提高了工作效率;另外,使用网格法将数据集合缩减成有效物体数据集合再进行迭代运算,大幅度削减了不相关的计算量,降低了输入输出数据的耗时,进一步缩减了运算时间。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据本发明实施例的一种关键字查询方法的流程图;
图2为根据本发明实施例的一种关键字查询方法中,反向关键字表中所记载的对应关系的示意图;
图3为根据本发明实施例的一种关键字查询方法中,以查询向量所在的网格为中心的网格内物体元素分布图;
图4为根据本发明实施例的一种关键字查询方法中,以查询向量所在的网格为中心的网格对查询向量所包含的关键字的覆盖情况示意图;
图5为根据本发明实施例的一种关键字查询方法中,为解决MKC问题而建立的有效物体数据集合在网格中的覆盖情况示意图;
图6为根据本发明实施例的一种关键字查询方法的分布式文件系统架构图;
图7为根据本发明实施例的一种关键字查询装置的框图;
图8为根据本发明实施例的一种关键字查询方法与装置中,Sum-BS与Sum-Cao在GN数据集上的运算时间走势图;
图9为根据本发明实施例的一种关键字查询方法与装置中,Sum-BS与Sum-Cao在Web数据集上的运算时间走势图;
图10为根据本发明实施例的一种关键字查询方法与装置中,固定查询关键字数量为5时,Sum-BS与Sum-Cao在Hotel数据集上的运算时间走势图。
图11为根据本发明实施例的一种关键字查询方法与装置中,Sum-GS与Sum-BS在GN数据集上的运算时间走势图;
图12为根据本发明实施例的一种关键字查询方法与装置中,Sum-GS与Sum-BS在Web数据集上的运算时间走势图;
图13为根据本发明实施例的一种关键字查询方法与装置中,平均关键字数量|o.ψ|逐渐增加时,Sum-GS与Sum-BS在Hotel数据集上的运算时间走势图;
图14为根据本发明实施例的一种关键字查询方法与装置中,逐渐拓展GN数据集的物体元素数量时,Sum-GS与Sum-BS在GN数据集上的运算时间走势图;
图15为根据本发明实施例的一种关键字查询方法与装置中,运算节点数量逐步扩展时,Sum-GS与Sum-BS在Web数据集上的运算时间走势图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进一步进行清楚、完整、详细地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明的实施例,提供了一种关键字查询方法。
如图1所示,根据本发明实施例提供的关键字查询方法包括:
步骤S101,扫描定义范围内的每个物体,并获取每个物体的数据信息;
步骤S103,将每个物体的数据信息构建为数据集合;
步骤S105,获取查询请求,验证查询请求的合法性;
步骤S107,若查询请求合法,则根据合法查询请求在数据集合中进行查询,并返回符合查询请求的结果。
其中,每个物体的数据信息,包括每个物体的位置信息与关键字信息,其中,每个物体的关键字信息包括至少一关键字。物体的位置信息用于计算物体之间、或物体与某一点之间的距离,可用于比较远近,而比较远近在本发明的环境下就意味着价值大小。在其他条件相同时,相对于查询的起点越近的物体被选中的倾向就越高。
其中,获取查询请求,为获取一查询向量与一查询范围集合,其中,查询向量包括一查询位置信息与一查询关键字集合,其中,查询关键字集合包括至少一关键字,查询范围集合为数据集合的子集。对于任一查询请求,均通过查询范围集合指定一个查询范围,查询请求只在查询范围中生效。查询向量中的查询位置信息即查询的起始点,查询位置信息与物体位置信息决定了物体的距离,即物体的价值;查询关键字集合包括了查询关键字,所有物体的关键字信息与查询关键字新型比对时可判断出物体是否为被查询所需要的物体。
其中,验证查询请求的合法性,为判断查询范围集合中的每个物体元素是否都包含关键字集合中的至少一关键字,以及判断查询关键字集合是否为查询范围集合中的每个物体元素的关键字所组成的集合的子集,如果是,则认为查询请求合法。查询请求的合法性表示着查询范围集合中的确存在着查询向量所指向的物体,一个合法的查询请求必然会获得结果。相反地,没有合法性的查询请求意味着查询向量在查询范围集合中找不到符合条件的物体,该查询请求不会得出查询结果,也没有实际意义。
其中,根据查询请求在数据集合中进行查询,为构建一结果范围集合,其中,结果范围集合为数据集合的子集,结果范围集合中的每个物体元素都包含关键字集合中的至少一关键字,查询关键字集合为结果范围集合中的每个物体元素的关键字所组成的集合的子集,并且结果范围集合与查询向量组成的损失函数应小于查询请求本身的加性损失函数,其中,加性损失函数为查询向量到查询范围集合或结果范围集合中每个物体元素的距离之和。本发明中使用了加性损失函数,即单纯的线性距离之和来判定物体的价值,因为单纯的线性距离之和是最普适的;如果有需要,也可以按需更换成其他带有不同权重的、非线性的价值判定方式。
使用数学语言对问题进行描述如下:
设数据集合为O。对于每一个物体元素o∈O,都有o.λ表示o的位置信息,o.ψ表示o的关键字信息。对于给定的查询q=(q.λ,q.ψ)与相关物体集合S,如果每个o∈S都至少包含λ,ψ中的一个关键字,且S.ψ能够覆盖q.ψ,我们称S,q这个查询请求是合法的。
我们使用Cost(q,S)表示S的损失函数。给定一个查询q=(q.λ,q.ψ),我们将会找到一组S*,使得S*.ψ能够覆盖q.ψ,且Cost(q,S*)取得最小值。即,S*应满足以下三个条件:
Cost(q,S*)<Cost(q,S)。
同时,在加法损失函数中,d(oi,oj)为两点之间的欧氏距离。S的加法损失函数
构建结果范围集合包括:访问数据集合,将数据集合分割为大小相同的多个网格,并为每个网格进行特异性编号,多个网格覆盖数据集合内所有的物体元素;根据每个网格覆盖数据集合内物体元素的实际情况,建立网格表与反向关键字表;根据网格表与反向关键字表获得数据集合的局部最优结果范围集合;根据局部最优结果范围集合构建有效物体数据集合,并根据有效物体数据集合构建结果范围集合。使用网格方式分割数据集合,并使用下述的技术方案,可以有效地降低不必要的计算量,大幅度缩减计算时间与资源占用;另一方面,使用网格中心坐标取代物体元素坐标,降低的计算精度要求,也大幅度提高了计算效率。
根据每个网格覆盖数据集合内物体元素的实际情况,建立网格表与反向关键字表包括:根据每个网格的特异性编号与每个网格各自覆盖的物体元素的数据信息,建立网格表,网格表记录了每个网格与数据集合内的物体元素的对应关系;根据每个网格的特异性编号、每个网格各自覆盖的物体元素的数据信息、以及物体元素的数据信息被存储的位置,建立反向关键字表,反向关键字表在每个网格的特异性编号、每个网格各自覆盖的物体元素的关键字信息、与物体元素的数据信息被存储的位置三者之间建立了对应关系,反向关键字表还在数据集合内的每个关键字与包含关键字的物体元素所在的每个网格的特异性编号二者之间建立了对应关系,在数据集合内包含某一关键字的所有物体元素均在反向关键字表中以一个对应关系进行表示。网格表与反向关键字表都是静态的,只需计算一次就能持续使用,不需要更新。
根据网格表与反向关键字表获得数据集合的局部最优结果范围集合包括:计算所有网格与查询向量所在网格的网格间距,其中,网格间距的数值等于从任意网格垂直移动到查询向量所在网格的同一水平线上穿过的网格数量值、与任意网格水平移动到查询向量所在网格的同一垂直线上穿过的网格数量值中,二者的较大值;建立局部最优有效结果范围集合,按照网格间距从小到大对所有网格进行排序,按照排序依次选取每一网格,并检查当前网格中的物体元素的关键字集合中是否包括查询向量的查询关键字集合中至少一关键字,且该关键字尚未被局部最优有效结果范围集合内的任何物体元素覆盖,如果是,则将当前网格中的物体元素加入局部最优有效结果范围集合中;检查查询向量中的所有查询关键字是否都被局部最优有效结果范围集合中所有物体元素的关键字集合的并集覆盖,若否,则按照网格排序选取下一个网格并以该网格作为当前网格重复进行上一步骤,直到查询向量中的所有查询关键字都能被局部最优有效结果范围集合中所有物体元素的关键字集合的并集覆盖。
根据局部最优结果范围集合构建有效物体数据集合包括:根据局部最优结果范围集合与查询请求,计算局部最优结果范围集合的局部最优损失函数;建立有效物体数据集合,有效物体数据集合为数据集合的子集,有效物体数据集合是以查询向量为中心、以局部最优结果范围集合的局部最优损失函数为半径所构成的球体覆盖的所有数据集合中物体元素组成的集合。
数据集合的每一个物体元素都会被以分布式的方式检查是否对损失函数作出贡献。根据我们系统的体系架构,所有数据被存储在分布式系统中。数据输入输出消耗的时间成本远高于在内存中的计算的时间成本。由此可以判断,为了进一步提高算法的效率,我们需要减少数据输入输出的总量。
我们应该消除掉不会对最终损失函数结果有影响的物体元素。因此,我们提出运用基于网格的方法去优化基准算法。首先,我们把整个查询空间划分成小的网格。选择基于网格的索引主要基于以下两点:网格索引是,也就是数据独立的,或者叫空间驱动的,任意物体元素的改变不会影响网格索引的结构;同时,其他索引技术——如IR树——是数据驱动型的,更加有利于数据的存储和搜索,而非静态处理。
我们试图特定区域的目标数据量。一旦区域被确定了,目标点也就被确定了。这样,空间驱动的网格算法更加适合我们的需求。因此,我们使用网格的方法去划分数据。
下面根据具体实施例进一步说明本发明从划分网格到获得有效物体数据集合部分的技术方案。
使用网格(尤其是正方形网格)来对物体元素分区。起始阶段,我们把空间划分成多个网格C={ci}。如图2的左表所示,每个网格有一特异性编码。所有的网格覆盖了所有的数据元素,而所有的数据点可以按网格的方式被访问。我们预先计算分区过程,并建立了网格表和反向关键字表。
为了从网格中选择相应的目标项,我们构建一种网格结构。这种结构形如{ci,Lo(ci)},其中,ci表示网格的特异性编码,Lo(ci)表示网格的位置信息。基于这样的结构,给定一个ci,我们可以直接访问到其中的所有物体元素。此外,我们还使用中心点的坐标来加速网格的访问速度。一旦查询向量q已知,那么包含这个查询点的网格已经相应的目标物体都会被确定下来。
为了加速查询过程,我们创建了反向关键字表。反向关键字表包括所有独立关键字的字典,与按照网格特异性编码和对应关键字划分的网格信息列表。存储网格特异性编码而非物体元素可以有效在于减少存储开销并提高访问速度。所有包含关键字k的在一个网格中的物体都会被表示成一条反向关键字列表中的记录。可以找到任一给定关键字k相应的网格,以及同时这些覆盖给定关键字k的网格里的其他物体。
如图2所示,我们把整个数据集合划分成10*7的长方形网格,其中,c6,4和c8,5分别表示坐标点(6,4)和(8,5)的网格。每个网格中的节点都有一个纸箱存储物体信息的标示点,如p5在c8,5中,被存储于Block2;p6在c6,4中,被存储于Block3。
网格中不包含查询向量q所包含的关键字都没有进行进一步计算的必要。对于一个给定的查询向量q,首先检查查询向量q被哪个网格cq覆盖,并检查该网格是否包括能满足查询向量q的关键字。如果存在这样的关键字,那么cq被加入候选列表CList。如果仍然有未被CList中的网格所满足的查询向量q的关键字,就进一步查询cq周围的网格。我们用Ω表示对于查询向量q的当前搜索空间,r作为从任意网格到cq的查询步长。r的计算方法如下:
r=max(DN(x),DN(y))
这里DN(x)指的是从x轴上看cq到指定网格之间穿过的网格数量,DN(y)同理。如图3所示,c5,2到c4,3的步长为r=1。我们通过增加步长的方式逐渐增大当前搜索空间Ω,直到查询向量q的所有关键字都被CList中的网格所覆盖。如图4所示,在第一次迭代中,步长r=0,c4,3被加入CList,因为c4,3包含k5;q的关键字为k2与k5,还没有被CList所完全覆盖,算法继续运行;在第二次迭代中,步长r=1,c5,2被加入CList,因为c5,2包含k2。至此,所有关键字都被覆盖,算法终止。为了加速匹配关键字的过程,每个网格都有一个关键字向量,用来表示是否包含关键字(即图3中所示的Ω0和Ω1),这样我们就可以方便的中选出至少查询向量q中一个关键字的网格。
对于一个给定的查询向量q,其结果范围集合用S表示。如果每个物体元素只覆盖一个关键字,即满足以下条件:
||S∩q.ψ||=1
|S|=|q.ψ|
则该问题被称为单点覆盖。直接选取能覆盖查询向量q的满足最小化条件的所有物体元素就得到结果范围集合。如果一个物体元素含有多个关键字,我们就称这样的问题为MKC问题。单点覆盖的解不一定是MKC问题的解。
如图4所示,对于查询向量q,q.λ被cq所覆盖,且q.ψ={k2,k5}。在单点覆盖问题中,结果范围集合为S0={p1,p2}。加入MKC问题的情况讨论一般性时,那么S0={p1,p2}就不是结果范围集合,因为存在Cost(q,p6)<Cost(q,S0)使得S0={p1,p2}的损失函数并非最小值。
对于MKC问题,虽然依照上述方法不能直接获得结果范围集合,但我们可以确定其结果范围集合的损失函数不能超过Cost(q,S0)。在极端情况下,所有的查询关键字q.ψ被一个单独的目标物体p*所覆盖,即q.ψ∩p*.ψ=q.ψ若。S=p*优于S0,则必有Cost(q,p*)<Cost(q,S0)。
我们可以证明,所有不在已查询向量q为中心,Cost(q,S0)为半径的球内的点都不在结果范围集合中。
如图5所示,显然有Cost(q,{p6})<Cost(q,{p1,p2}),而在MKC问题中目前只能获得非最优的近似解S0={p1,p2}。基于Cost(q,S0),我们拓展搜索空间到一个圆形区域Ω*,获取Ω*内所覆盖的所有物体元素。将这些物体元素全部加入CList,包括c5,2,c4,3与c6,4。现在获得的CList可再次使用迭代法进行精确的计算。CList中的物体元素与数据集合相比,省略了大量不会对结果范围集合产生影响的物体元素的相关计算,CList被称为有效物体数据集合,因为CList中的物体元素对于查询向量q都是有影响力的。
访问查询关键字集合,并根据查询关键字集合构建关键字排布集合,关键字排布集合为查询关键字集合的幂集合减去空集。关键字排布集合为所有可能形式的关键字的组合,对于n个关键字,关键字排布集合中会存在2n-1个元素。每个元素会被依次标号用于下属的两数组中。
建立最小距离数组与最小贡献物体数组,最小距离数组与最小贡献物体数组的长度数值等于关键字排布集合中元素的个数数值,最小距离数组与最小贡献物体数组的内容与关键字排布集合中的元素一一对应。最小距离数组,记为Cost[i],用于存储每一个由i编码的加法损失函数最小值;最小贡献物体数组,记为Group[i],用于存储每一个Cost[i]所对应的贡献物体。
依次指定关键字排布集合中每个元素为迭代关键字集合,并将迭代关键字集合与查询位置信息结合构成迭代向量。
访问有效物体数据集合中的每个物体元素,并获取每个物体元素到迭代向量的最小距离、以及达成该最小距离的物体元素,并将迭代向量的最小距离存入最小距离数组内与关键字排布集合中当前元素相对应的位置上,并将达成该最小距离的物体元素存入最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上,其中,若关键字排布集合中当前元素未被有效物体数据集合中的任意物体元素的关键词所覆盖使得当前物体元素到迭代向量的最小距离不存在,则将正无穷存入最小距离数组内与关键字排布集合中当前元素相对应的位置上、以及最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上。到此获得的是初步结果查询结果。
根据有效物体数据集合建立有效物体对数据集合,有效物体对数据集合的元素为有效物体数据集合中的每两个不同物体元素进行组合的形成的物体对元素。
访问有效物体对数据集合中的每个物体对元素,并获取每个物体对元素中两个物体元素各自到迭代向量的最小距离之和、以及达成该最小距离的物体对元素,并将迭代向量的最小距离之和与最小距离数组内与关键字排布集合中当前元素相对应的位置上的现有数字进行比对,若迭代向量的最小距离之和小于现有数字,则将现有数字置为迭代向量的最小距离之和,并清除最小贡献物体数组内与关键字排布集合中当前元素相对应位置上的内容,将达成该最小距离之和的物体对元素写入最小贡献物体数组内与关键字排布集合中当前元素相对应位置。
依次指定关键字排布集合中每个元素为迭代关键字集合并执行上述步骤,直到关键字排布集合中的所有元素都被指定过。
输出最小距离数组与最小贡献物体数组的最终结果,最小距离数组全数组之和为加性损失函数的最小值,最小贡献物体数组全数组所有元素组成的集合为结果范围集合。
下面根据具体实施例进一步说明本发明从构建关键字排布集合到获得结果范围集合部分的技术方案。
现给定一个查询q=(q.λ,{k1,k2,k3})与三个物体元素o1=(o1.λ,{k1,k2})、o2=(o2.λ,{k1,k3})、o3=(o3.λ,{k1,k2}),其初步查询结果如下表所示:
基于初步查询结果继续进行处理得到的最终结果如下表所示:
对比上下两步可知,变化出现在i=3与i=7位置。当i=3时,对应的关键字元素是(k1,k2),在检索单个物体元素时,只有o1符合条件,Cost(q,o1)=4;在访问有效物体对数据集合中的每个物体对元素时,存在(o2,o3)符合条件,且有Cost(q,{o2,o3})=Cost(q,o2)+Cost(q,o3)=3<4,因此使用(o2,o3)取代o1,并更新Cost[i]与Group[i]的对应项。按照这种方法,我们取到了Cost(q,oi)的最小值,将损失函数降低到理论值。
获取每个物体元素到迭代向量的最小距离、以及达成该最小距离的物体元素,并将迭代向量的最小距离存入最小距离数组内与关键字排布集合中当前元素相对应的位置上,并将达成该最小距离的物体元素存入最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上,为使用并行方式处理并写入数据;获取每个物体对元素中两个物体元素各自到迭代向量的最小距离之和、以及达成该最小距离的物体对元素,并将迭代向量的最小距离之和与最小距离数组内与关键字排布集合中当前元素相对应的位置上的现有数字进行比对,若迭代向量的最小距离之和小于现有数字,则将现有数字置为迭代向量的最小距离之和,并清除最小贡献物体数组内与关键字排布集合中当前元素相对应位置上的内容,将达成该最小距离之和的物体对元素写入最小贡献物体数组内与关键字排布集合中当前元素相对应位置,为使用串行方式处理并写入数据。考虑到前半部分的计算量较大,使用并行方式计算前半部分可以缩减等待时间,提高计算速度。
具体地,如图10所示,将每个物体的数据信息构建为数据集合,为将每个物体的数据信息存储在分布式文件系统中,并将数据信息按分布式文件系统的形式构建为数据集合;获取每个物体元素到迭代向量的最小距离、以及达成该最小距离的物体元素,并将迭代向量的最小距离存入最小距离数组内与关键字排布集合中当前元素相对应的位置上,并将达成该最小距离的物体元素存入最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上,为通过使用服务器控制分布式文件系统的多个物理地址的处理终端处理并写入数据,并将处理并写入的数据传送到服务器;获取每个物体对元素中两个物体元素各自到迭代向量的最小距离之和、以及达成该最小距离的物体对元素,并将迭代向量的最小距离之和与最小距离数组内与关键字排布集合中当前元素相对应的位置上的现有数字进行比对,若迭代向量的最小距离之和小于现有数字,则将现有数字置为迭代向量的最小距离之和,并清除最小贡献物体数组内与关键字排布集合中当前元素相对应位置上的内容,将达成该最小距离之和的物体对元素写入最小贡献物体数组内与关键字排布集合中当前元素相对应位置,为服务器接受前一步骤的数据,并在服务器本地进行运算,进一步处理并写入数据。
根据本发明的实施例,还提供了一种关键字查询装置。
如图7所示,根据本发明实施例提供的关键字查询装置包括:
一服务器31,服务器31连接至多个处理终端32,服务器31用于获取查询请求、验证查询请求的合法性、并根据查询请求访问多个处理终端32、向多个处理终端32分配第一处理任务、接收第一处理任务的结果并进行第二处理任务、将第二处理任务的结果输出;
多个处理终端32,多个处理终端32均连接至服务器31,每个处理终端32各连接至一分布式存储器33,每个处理终端32用于接收服务器31分配的第一处理任务、访问分布式存储器33中的数据、进行第一处理任务并将第一处理任务输出到服务器31;
多个分布式存储器33,每个分布式存储器33各连接至一处理终端32,多个分布式存储器33用于联合存储数据集合中的所有数据信息。
其中,服务器31建立网格表、建立反向关键字表、建立局部最优结果范围集合、建立有效物体数据集合,包括:服务器31根据每个网格的特异性编号与每个网格各自覆盖的物体元素的数据信息,建立网格表,网格表记录了每个网格与数据集合内的物体元素的对应关系;服务器31根据每个网格的特异性编号、每个网格各自覆盖的物体元素的数据信息、以及物体元素的数据信息被存储的位置,建立反向关键字表,反向关键字表在每个网格的特异性编号、每个网格各自覆盖的物体元素的关键字信息、与物体元素的数据信息被存储的位置三者之间建立了对应关系,反向关键字表还在数据集合内的每个关键字与包含关键字的物体元素所在的每个网格的特异性编号二者之间建立了对应关系,在数据集合内包含某一关键字的所有物体元素均在反向关键字表中以一个对应关系进行表示;服务器31计算所有网格与查询向量所在网格的网格间距,其中,网格间距的数值等于从任意网格垂直移动到查询向量所在网格的同一水平线上穿过的网格数量值、与任意网格水平移动到查询向量所在网格的同一垂直线上穿过的网格数量值中,二者的较大值;服务器31建立局部最优有效结果范围集合,按照网格间距从小到大对所有网格进行排序,按照排序依次选取每一网格,并检查当前网格中的物体元素的关键字集合中是否包括查询向量的查询关键字集合中至少一关键字,且该关键字尚未被局部最优有效结果范围集合内的任何物体元素覆盖,如果是,则将当前网格中的物体元素加入局部最优有效结果范围集合中;服务器31检查查询向量中的所有查询关键字是否都被局部最优有效结果范围集合中所有物体元素的关键字集合的并集覆盖,若否,则按照网格排序选取下一个网格并以该网格作为当前网格重复进行上一步骤,直到查询向量中的所有查询关键字都能被局部最优有效结果范围集合中所有物体元素的关键字集合的并集覆盖;服务器31根据局部最优结果范围集合与查询请求,计算局部最优结果范围集合的局部最优损失函数;服务器31建立有效物体数据集合,有效物体数据集合为数据集合的子集,有效物体数据集合是以查询向量为中心、以局部最优结果范围集合的局部最优损失函数为半径所构成的球体覆盖的所有数据集合中物体元素组成的集合。
并且,多个处理终端32执行第一任务包括:依次指定关键字排布集合中每个元素为迭代关键字集合,并将迭代关键字集合与查询位置信息结合构成迭代向量;访问有效物体数据集合中的每个物体元素,并获取每个物体元素到迭代向量的最小距离、以及达成该最小距离的物体元素,并将迭代向量的最小距离存入最小距离数组内与关键字排布集合中当前元素相对应的位置上,并将达成该最小距离的物体元素存入最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上,其中,若关键字排布集合中当前元素未被有效物体数据集合中的任意物体元素的关键词所覆盖使得当前物体元素到迭代向量的最小距离不存在,则将正无穷存入最小距离数组内与关键字排布集合中当前元素相对应的位置上、以及最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上。
同时,服务器31执行第二任务包括:根据有效物体数据集合建立有效物体对数据集合,有效物体对数据集合的元素为有效物体数据集合中的每两个不同物体元素进行组合的形成的物体对元素;访问有效物体对数据集合中的每个物体对元素,并获取每个物体对元素中两个物体元素各自到迭代向量的最小距离之和、以及达成该最小距离的物体对元素,并将迭代向量的最小距离之和与最小距离数组内与关键字排布集合中当前元素相对应的位置上的现有数字进行比对,若迭代向量的最小距离之和小于现有数字,则将现有数字置为迭代向量的最小距离之和,并清除最小贡献物体数组内与关键字排布集合中当前元素相对应位置上的内容,将达成该最小距离之和的物体对元素写入最小贡献物体数组内与关键字排布集合中当前元素相对应位置。
同时,服务器31验证查询请求的合法性,为判断查询范围集合中的每个物体元素是否都包含关键字集合中的至少一关键字,以及判断查询关键字集合是否为查询范围集合中的每个物体元素的关键字所组成的集合的子集,如果是,则认为查询请求合法。
实验证明了本发明的方法相对于现有技术的方法具有较好的效果。
我们使用三种真实数据集合,分别是Hotel,GN和Web。Hotel数据集合是从allstays.com美国数据库中提取出的数据。每个物体元素包含对一个酒店的描述和位置信息。GN数据集合是从geonames.usgs.gov中提取的地理信息数据。Web数据集合是从Tiger Census Block和WEBSPAMUK2007.中随机抽取的数据。在扩展性试验中,我们把Hotel数据集合的物体元素数量扩展到2M,4M,8M和16M。
每一组实验中,我们随机生成100个查询进行算法测试,每个算法时间取平局值。查询点位置信息随机产生,关键字信息首先按频率排序后再随机产生。对于Sum-CoSKQ问题,我们考虑三种算法Sum-Cao(一种现有技术算法),Sum-BS(另一种相关算法)和Sum-GS(本发明提供的基于网格的算法)在scala语言中的实现。其中,Sum-GS划分数据集合网格大小为64X64。所有算法都在21个节点的AmazonEC2集群上执行。每个节点的配置为4vCPU。每CPU4Cores,15GBRAM和80GB SSD。软件环境为Linux、jdk1.7、scala 1.02与hadoop2.2.0。
我们考虑两种指标,运行时间和访问物体数。
Sum-BS与Sum-Cao的比较结果如图8所示,Sum-BS在GN数据集上比Sum-Cao明显的缩短了运行时间。另一方面,Sum-BS和Sum-Cao的第二任务上运行时间都与查询关键字呈现相关性。由于并行化处理数据的帮助,Sum-BS的运行时间从1.71s缓慢上升到3.28s而Sum-Cao从2s大幅上升到548s。图9是Web数据集和GN数据集的运行时间对比图。Web数据集的特点是更少的物体数量,更多的独立关键字数目以及单位物体数量下更多的平均关键字。和预期的一样,Sum-BS比Sum-Cao的表现要好。更进一步观察,Sum-BS大部分情况下,在Web数据集上的运行时间比在GN上要快,并且在关键字等于15的时候只稍微慢了0.28秒。相反,Sum-Cao当关键字数量上升时,Sum-Cao需要更多的时间去处理数据。进一步,我们固定查询关键字数量为5,并且扩展物体数量的平均关键字数量|o.ψ|。Hotel数据集原始的平均关键字数为4,现在我们相应的拓展到2倍、4倍、6倍、10倍形成总共5个数据集。图10表明,Sum-Cao在小数据集上的表现比Sum-BS在并行化框架下的表现要好但Sum-BS仍然能高效的并行处理CoSKQ问题。原因主要有以下两点:Hotel数据集的物体数量与关键字数量都很小,集中式算法也能高效处理;同时,并行框架需要额外的通信开销。
我们又测试了一组实验来对比Sum-BS和Sum-GS的性能表现。Sum-GS目标在于减少搜索空间从而提高效率。在Sum-GS中,只有有可能产生贡献的物体才会被选择,所以,第二任务的计算开销会减少。图11和图12说明,Sum-GS在GN和Web数据集合上比Sum-BS要好。和Sum-BS相比,Sum-GS的运行时间,随着查询关键字的增长,会稍微增长。下列三表分别是Hotel,GN和Web数据集合上不同关键词数量下的第二任务中检索物体元素总数,Sum-GS会在第二阶段剪枝掉很多不相关物体。
TABLE III:GN,Accessed Objects
TABLE IV:Web,Accessed Objects
TABLE V:Hotel,Accessed Objects
图13示出了在拓展物体关键字数量时Sum-GS和Sum-BS的运行时间差异。当平均关键字数量|o.ψ|增加时,候选区域变小从而缩短了处理时间。Sum-GS不仅在运行时间上快于Sum-BS,而且读取的数量更小。如表5所示,Sum-GS只分别读取了97,68,53,44,27个物体元素,相对应于平均关键字数量为4,8,16,24,40。
可扩展性测试分成数据集扩展性测试和运算节点可扩展性测试两个方面。首先我们拓展GN数据集的物体元素数量,再拓展运算节点的数量。查询关键字数量设置为5。我们首先考察算法的扩展性在5个人造数据集上的表现。GN数据集合一共含有1868821个物体元素。我们拓展其数量为2倍,4倍,8倍,16倍。如图14所示,两种算法都能高效的处理扩展后的数据。Sum-GS由于剪枝的作用快运Sum-BS。表6显示了两种算法访问的物体元素数量。归功于Sum-GS的剪枝策略,当数据量增长时,其拥有更好的运行时间低成长率。之后我们测试了算法在运算节点扩充时的表现。我们从起始5节点扩展到30节点,步长为5。如图15所示,两个算法随着节点的扩展,运行时间在下降。同时我们观察到,Sum-BS在20个节点,Sum-GS在10个节点时,由于并行通信的开销,运行时间略微上升。
总体上,Sum-GS在运行时间和访问数据量上都比Sum-BS和Sum-Cao要好,并且Sum-GS具有较好的可扩展性。
综上所述,借助于本发明的上述技术方案,通过将构建结果范围集合拆分为第一任务与第二任务并分别进行计算,避免了使用IR树,得以兼容大规模的数据运算,增强了扩展性;使用迭代算法构建结果范围集合可以保证获得的结果范围集合最优解,提高了工作效率;另外,使用网格法将数据集合缩减成有效物体数据集合再进行迭代运算,大幅度削减了不相关的计算量,降低了输入输出数据的耗时,进一步缩减了运算时间。
所属领域的普通技术人员应当理解:以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种关键字查询方法,其特征在于,包括:
扫描定义范围内的每个物体,并获取所述每个物体的数据信息;
将所述每个物体的数据信息构建为数据集合;
获取查询请求,验证所述查询请求的合法性;
若所述查询请求合法,则根据所述合法查询请求在所述数据集合中进行查询,并返回符合查询请求的结果。
2.根据权利要求1所述的一种关键字查询方法,其特征在于:
所述每个物体的数据信息,包括每个物体的位置信息与关键字信息,其中,所述每个物体的关键字信息包括至少一关键字;
所述获取查询请求,为获取一查询向量与一查询范围集合,其中,所述查询向量包括一查询位置信息与一查询关键字集合,其中,所述查询关键字集合包括至少一关键字,所述查询范围集合为所述数据集合的子集;
验证所述查询请求的合法性,为判断所述查询范围集合中的每个物体元素是否都包含所述关键字集合中的至少一关键字,以及判断所述查询关键字集合是否为所述查询范围集合中的每个物体元素的关键字所组成的集合的子集,如果是,则认为所述查询请求合法;
根据所述查询请求在所述数据集合中进行查询,为构建一结果范围集合,其中,所述结果范围集合为所述数据集合的子集,所述结果范围集合中的每个物体元素都包含所述关键字集合中的至少一关键字,所述查询关键字集合为所述结果范围集合中的每个物体元素的关键字所组成的集合的子集,并且所述结果范围集合与所述查询向量组成的损失函数应小于所述查询请求本身的加性损失函数,其中,所述加性损失函数为所述查询向量到所述查询范围集合或所述结果范围集合中每个物体元素的距离之和。
3.根据权利要求2所述的一种关键字查询方法,其特征在于,构建所述结果范围集合包括:
访问所述数据集合,将所述数据集合分割为大小相同的多个网格,并为所述每个网格进行特异性编号,所述多个网格覆盖所述数据集合内所有的物体元素;
根据所述每个网格覆盖所述数据集合内物体元素的实际情况,建立网格表与反向关键字表;
根据所述网格表与所述反向关键字表获得所述数据集合的局部最优结果范围集合;
根据所述局部最优结果范围集合构建有效物体数据集合,并根据所述有效物体数据集合构建所述结果范围集合。
4.根据权利要求3所述的一种关键字查询方法,其特征在于,根据所述每个网格覆盖所述数据集合内物体元素的实际情况,建立网格表与反向关键字表包括:
根据所述每个网格的特异性编号与所述每个网格各自覆盖的所述物体元素的数据信息,建立所述网格表,所述网格表记录了所述每个网格与所述数据集合内的物体元素的对应关系;
根据所述每个网格的特异性编号、所述每个网格各自覆盖的所述物体元素的数据信息、以及所述物体元素的数据信息被存储的位置,建立所述反向关键字表,所述反向关键字表在所述每个网格的特异性编号、所述每个网格各自覆盖的所述物体元素的关键字信息、与所述物体元素的数据信息被存储的位置三者之间建立了对应关系,所述反向关键字表还在所述数据集合内的每个关键字与包含所述关键字的所述物体元素所在的所述每个网格的特异性编号二者之间建立了对应关系,在所述数据集合内包含某一关键字的所有所述物体元素均在所述反向关键字表中以一个对应关系进行表示。
5.根据权利要求4所述的一种关键字查询方法,其特征在于,根据所述网格表与所述反向关键字表获得所述数据集合的局部最优结果范围集合包括:
计算所述所有网格与所述查询向量所在网格的网格间距,其中,所述网格间距的数值等于从所述任意网格垂直移动到所述查询向量所在网格的同一水平线上穿过的网格数量值、与所述任意网格水平移动到所述查询向量所在网格的同一垂直线上穿过的网格数量值中,二者的较大值;
建立所述局部最优有效结果范围集合,按照所述网格间距从小到大对所述所有网格进行排序,按照排序依次选取每一网格,并检查所述当前网格中的物体元素的所述关键字集合中是否包括所述查询向量的所述查询关键字集合中至少一关键字,且该关键字尚未被所述局部最优有效结果范围集合内的任何物体元素覆盖,如果是,则将所述当前网格中的物体元素加入所述局部最优有效结果范围集合中;
检查所述查询向量中的所有所述查询关键字是否都被所述局部最优有效结果范围集合中所有物体元素的所述关键字集合的并集覆盖,若否,则按照所述网格排序选取下一个网格并以该网格作为当前网格重复进行上一步骤,直到所述查询向量中的所有所述查询关键字都能被所述局部最优有效结果范围集合中所有物体元素的所述关键字集合的并集覆盖。
6.根据权利要求5所述的一种关键字查询方法,其特征在于,根据所述局部最优结果范围集合构建有效物体数据集合包括:
根据所述局部最优结果范围集合与所述查询请求,计算所述局部最优结果范围集合的局部最优损失函数;
建立所述有效物体数据集合,所述有效物体数据集合为所述数据集合的子集,所述有效物体数据集合是以所述查询向量为中心、以所述局部最优结果范围集合的局部最优损失函数为半径所构成的球体覆盖的所有所述数据集合中所述物体元素组成的集合。
7.根据权利要求6所述的一种关键字查询方法,其特征在于,根据所述有效物体数据集合构建所述结果范围集合包括:
访问所述查询关键字集合,并根据所述查询关键字集合构建关键字排布集合,所述关键字排布集合为所述查询关键字集合的幂集合减去空集;
建立最小距离数组与最小贡献物体数组,所述最小距离数组与所述最小贡献物体数组的长度数值等于所述关键字排布集合中元素的个数数值,所述最小距离数组与所述最小贡献物体数组的内容与所述关键字排布集合中的元素一一对应;
依次指定所述关键字排布集合中每个元素为迭代关键字集合,并将所述迭代关键字集合与所述查询位置信息结合构成迭代向量;
访问所述有效物体数据集合中的每个物体元素,并获取所述每个物体元素到所述迭代向量的最小距离、以及达成该最小距离的物体元素,并将所述迭代向量的最小距离存入所述最小距离数组内与关键字排布集合中当前元素相对应的位置上,并将所述达成该最小距离的物体元素存入最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上,其中,若关键字排布集合中当前元素未被所述有效物体数据集合中的任意物体元素的关键词所覆盖使得当前物体元素到所述迭代向量的最小距离不存在,则将正无穷存入所述最小距离数组内与关键字排布集合中当前元素相对应的位置上、以及最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上;
根据所述有效物体数据集合建立有效物体对数据集合,所述有效物体对数据集合的元素为所述有效物体数据集合中的每两个不同物体元素进行组合的形成的物体对元素;
访问所述有效物体对数据集合中的每个物体对元素,并获取所述每个物体对元素中两个物体元素各自到所述迭代向量的最小距离之和、以及达成该最小距离的物体对元素,并将所述迭代向量的最小距离之和与所述最小距离数组内与关键字排布集合中当前元素相对应的位置上的现有数字进行比对,若所述迭代向量的最小距离之和小于现有数字,则将现有数字置为所述迭代向量的最小距离之和,并清除所述最小贡献物体数组内与关键字排布集合中当前元素相对应位置上的内容,将所述达成该最小距离之和的物体对元素写入所述最小贡献物体数组内与关键字排布集合中当前元素相对应位置;
依次指定所述关键字排布集合中每个元素为迭代关键字集合并执行上述步骤,直到所述关键字排布集合中的所有元素都被指定过;
输出所述最小距离数组与所述最小贡献物体数组的最终结果,所述最小距离数组全数组之和为所述加性损失函数的最小值,所述最小贡献物体数组全数组所有元素组成的集合为所述结果范围集合。
8.根据权利要求7所述的一种关键字查询方法,其特征在于:
获取所述每个物体元素到所述迭代向量的最小距离、以及达成该最小距离的物体元素,并将所述迭代向量的最小距离存入所述最小距离数组内与关键字排布集合中当前元素相对应的位置上,并将所述达成该最小距离的物体元素存入最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上,为使用并行方式处理并写入数据;
获取所述每个物体对元素中两个物体元素各自到所述迭代向量的最小距离之和、以及达成该最小距离的物体对元素,并将所述迭代向量的最小距离之和与所述最小距离数组内与关键字排布集合中当前元素相对应的位置上的现有数字进行比对,若所述迭代向量的最小距离之和小于现有数字,则将现有数字置为所述迭代向量的最小距离之和,并清除所述最小贡献物体数组内与关键字排布集合中当前元素相对应位置上的内容,将所述达成该最小距离之和的物体对元素写入所述最小贡献物体数组内与关键字排布集合中当前元素相对应位置,为使用串行方式处理并写入数据。
9.根据权利要求8所述的一种关键字查询方法,其特征在于:
将所述每个物体的数据信息构建为数据集合,为将所述每个物体的数据信息存储在分布式文件系统中,并将所述数据信息按所述分布式文件系统的形式构建为数据集合;
获取所述每个物体元素到所述迭代向量的最小距离、以及达成该最小距离的物体元素,并将所述迭代向量的最小距离存入所述最小距离数组内与关键字排布集合中当前元素相对应的位置上,并将所述达成该最小距离的物体元素存入最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上,为通过使用服务器控制所述分布式文件系统的多个物理地址的处理终端处理并写入数据,并将所述处理并写入的数据传送到服务器;
获取所述每个物体对元素中两个物体元素各自到所述迭代向量的最小距离之和、以及达成该最小距离的物体对元素,并将所述迭代向量的最小距离之和与所述最小距离数组内与关键字排布集合中当前元素相对应的位置上的现有数字进行比对,若所述迭代向量的最小距离之和小于现有数字,则将现有数字置为所述迭代向量的最小距离之和,并清除所述最小贡献物体数组内与关键字排布集合中当前元素相对应位置上的内容,将所述达成该最小距离之和的物体对元素写入所述最小贡献物体数组内与关键字排布集合中当前元素相对应位置,为服务器接受前一步骤的数据,并在服务器本地进行运算,进一步处理并写入数据。
10.一种关键字查询装置,其特征在于,包括:
一服务器,所述服务器连接至多个处理终端,所述服务器用于获取查询请求、验证所述查询请求的合法性、并建立网格表、建立反向关键字表、建立局部最优结果范围集合、建立有效物体数据集合、同时根据所述查询请求访问所述多个处理终端、向所述多个处理终端分配第一处理任务、接收所述第一处理任务的结果并进行第二处理任务、将所述第二处理任务的结果输出;
多个处理终端,所述多个处理终端均连接至所述服务器,所述每个处理终端各连接至一分布式存储器,所述每个处理终端用于接收服务器分配的所述第一处理任务、访问分布式存储器中的数据、进行所述第一处理任务并将所述第一处理任务输出到所述服务器;
多个分布式存储器,所述每个分布式存储器各连接至一所述处理终端,所述多个分布式存储器用于联合存储所述数据集合中的所有数据信息。
11.根据权利要求10所述的一种关键字查询装置,其特征在于,所述服务器建立网格表、建立反向关键字表、建立局部最优结果范围集合、建立有效物体数据集合,包括:
所述服务器根据所述每个网格的特异性编号与所述每个网格各自覆盖的所述物体元素的数据信息,建立所述网格表,所述网格表记录了所述每个网格与所述数据集合内的物体元素的对应关系;
所述服务器根据所述每个网格的特异性编号、所述每个网格各自覆盖的所述物体元素的数据信息、以及所述物体元素的数据信息被存储的位置,建立所述反向关键字表,所述反向关键字表在所述每个网格的特异性编号、所述每个网格各自覆盖的所述物体元素的关键字信息、与所述物体元素的数据信息被存储的位置三者之间建立了对应关系,所述反向关键字表还在所述数据集合内的每个关键字与包含所述关键字的所述物体元素所在的所述每个网格的特异性编号二者之间建立了对应关系,在所述数据集合内包含某一关键字的所有所述物体元素均在所述反向关键字表中以一个对应关系进行表示;
所述服务器计算所述所有网格与所述查询向量所在网格的网格间距,其中,所述网格间距的数值等于从所述任意网格垂直移动到所述查询向量所在网格的同一水平线上穿过的网格数量值、与所述任意网格水平移动到所述查询向量所在网格的同一垂直线上穿过的网格数量值中,二者的较大值;
所述服务器建立所述局部最优有效结果范围集合,按照所述网格间距从小到大对所述所有网格进行排序,按照排序依次选取每一网格,并检查所述当前网格中的物体元素的所述关键字集合中是否包括所述查询向量的所述查询关键字集合中至少一关键字,且该关键字尚未被所述局部最优有效结果范围集合内的任何物体元素覆盖,如果是,则将所述当前网格中的物体元素加入所述局部最优有效结果范围集合中;
所述服务器检查所述查询向量中的所有所述查询关键字是否都被所述局部最优有效结果范围集合中所有物体元素的所述关键字集合的并集覆盖,若否,则按照所述网格排序选取下一个网格并以该网格作为当前网格重复进行上一步骤,直到所述查询向量中的所有所述查询关键字都能被所述局部最优有效结果范围集合中所有物体元素的所述关键字集合的并集覆盖;
所述服务器根据所述局部最优结果范围集合与所述查询请求,计算所述局部最优结果范围集合的局部最优损失函数;
所述服务器建立所述有效物体数据集合,所述有效物体数据集合为所述数据集合的子集,所述有效物体数据集合是以所述查询向量为中心、以所述局部最优结果范围集合的局部最优损失函数为半径所构成的球体覆盖的所有所述数据集合中所述物体元素组成的集合。
12.根据权利要求11所述的一种关键字查询装置,其特征在于,所述第一任务包括:
依次指定所述关键字排布集合中每个元素为迭代关键字集合,并将所述迭代关键字集合与所述查询位置信息结合构成迭代向量;
访问所述有效物体数据集合中的每个物体元素,并获取所述每个物体元素到所述迭代向量的最小距离、以及达成该最小距离的物体元素,并将所述迭代向量的最小距离存入所述最小距离数组内与关键字排布集合中当前元素相对应的位置上,并将所述达成该最小距离的物体元素存入最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上,其中,若关键字排布集合中当前元素未被所述有效物体数据集合中的任意物体元素的关键词所覆盖使得当前物体元素到所述迭代向量的最小距离不存在,则将正无穷存入所述最小距离数组内与关键字排布集合中当前元素相对应的位置上、以及最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上。
13.根据权利要求11所述的一种关键字查询装置,其特征在于,所述第二任务包括:
根据所述有效物体数据集合建立有效物体对数据集合,所述有效物体对数据集合的元素为所述有效物体数据集合中的每两个不同物体元素进行组合的形成的物体对元素;
访问所述有效物体对数据集合中的每个物体对元素,并获取所述每个物体对元素中两个物体元素各自到所述迭代向量的最小距离之和、以及达成该最小距离的物体对元素,并将所述迭代向量的最小距离之和与所述最小距离数组内与关键字排布集合中当前元素相对应的位置上的现有数字进行比对,若所述迭代向量的最小距离之和小于现有数字,则将现有数字置为所述迭代向量的最小距离之和,并清除所述最小贡献物体数组内与关键字排布集合中当前元素相对应位置上的内容,将所述达成该最小距离之和的物体对元素写入所述最小贡献物体数组内与关键字排布集合中当前元素相对应位置。
14.根据权利要求11所述的一种关键字查询装置,其特征在于,所述服务器验证所述查询请求的合法性,为判断所述查询范围集合中的每个物体元素是否都包含所述关键字集合中的至少一关键字,以及判断所述查询关键字集合是否为所述查询范围集合中的每个物体元素的关键字所组成的集合的子集,如果是,则认为所述查询请求合法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510133447.0A CN104881426B (zh) | 2015-03-25 | 2015-03-25 | 一种关键字查询方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510133447.0A CN104881426B (zh) | 2015-03-25 | 2015-03-25 | 一种关键字查询方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104881426A true CN104881426A (zh) | 2015-09-02 |
CN104881426B CN104881426B (zh) | 2018-03-16 |
Family
ID=53948920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510133447.0A Active CN104881426B (zh) | 2015-03-25 | 2015-03-25 | 一种关键字查询方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104881426B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112632147A (zh) * | 2020-12-11 | 2021-04-09 | 邦彦技术股份有限公司 | 数据差异化比较方法、系统和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020059444A1 (en) * | 2000-11-01 | 2002-05-16 | Computer Engineering & Consulting Ltd. | Data storage system |
CN1758242A (zh) * | 2005-08-17 | 2006-04-12 | 上海理工大学 | 基于网格机制的网络数据搜索系统及其方法 |
CN103136363A (zh) * | 2013-03-14 | 2013-06-05 | 曙光信息产业(北京)有限公司 | 查询处理方法和集群数据库系统 |
CN103455338A (zh) * | 2013-09-22 | 2013-12-18 | 广州中国科学院软件应用技术研究所 | 一种数据获取方法及装置 |
-
2015
- 2015-03-25 CN CN201510133447.0A patent/CN104881426B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020059444A1 (en) * | 2000-11-01 | 2002-05-16 | Computer Engineering & Consulting Ltd. | Data storage system |
CN1758242A (zh) * | 2005-08-17 | 2006-04-12 | 上海理工大学 | 基于网格机制的网络数据搜索系统及其方法 |
CN103136363A (zh) * | 2013-03-14 | 2013-06-05 | 曙光信息产业(北京)有限公司 | 查询处理方法和集群数据库系统 |
CN103455338A (zh) * | 2013-09-22 | 2013-12-18 | 广州中国科学院软件应用技术研究所 | 一种数据获取方法及装置 |
Non-Patent Citations (1)
Title |
---|
周同: "面向集合和方向的空间数据库关键字查询", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112632147A (zh) * | 2020-12-11 | 2021-04-09 | 邦彦技术股份有限公司 | 数据差异化比较方法、系统和存储介质 |
CN112632147B (zh) * | 2020-12-11 | 2023-10-24 | 邦彦技术股份有限公司 | 数据差异化比较方法、系统和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104881426B (zh) | 2018-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110632907B (zh) | 一种分布式装配式置换流水车间调度优化方法及系统 | |
CN104361113B (zh) | 一种内存‑闪存混合存储模式下的olap查询优化方法 | |
Xuan et al. | Voronoi-based multi-level range search in mobile navigation | |
US20150370919A1 (en) | Graph travelsal operator and extensible framework inside a column store | |
Lu et al. | Flexible and efficient resolution of skyline query size constraints | |
CN101370025A (zh) | 地理信息数据的存储方法、调度方法及管理系统 | |
CN107391636B (zh) | top-m反近邻空间关键字查询方法 | |
CN106156168A (zh) | 在跨分区数据库中查询数据的方法及跨分区查询装置 | |
CN106156331A (zh) | 冷热温数据服务器系统及其处理方法 | |
CN106326475A (zh) | 一种高效的静态哈希表实现方法及系统 | |
CN104090897A (zh) | 访问元数据的方法、服务器及系统 | |
Tran et al. | A hybrid water flow algorithm for multi-objective flexible flow shop scheduling problems | |
CN107402926A (zh) | 一种查询方法以及查询设备 | |
CN106471501A (zh) | 数据查询的方法、数据对象的存储方法和数据系统 | |
CN105357247A (zh) | 基于分层云对等网络的多维属性云资源区间查找方法 | |
CN106599190A (zh) | 基于云计算的动态Skyline查询方法 | |
CN105550332A (zh) | 一种基于双层索引结构的起源图查询方法 | |
Demir et al. | Clustering spatial networks for aggregate query processing: A hypergraph approach | |
Bao et al. | Optimizing segmented trajectory data storage with HBase for improved spatio-temporal query efficiency | |
CN105138527A (zh) | 一种数据分类回归方法及装置 | |
CN107341193B (zh) | 路网中移动对象查询方法 | |
Leong et al. | Optimal matching between spatial datasets under capacity constraints | |
CN108984723A (zh) | 创建索引、数据查询方法、装置及计算机设备 | |
CN105761037A (zh) | 云计算环境下基于空间反近邻查询的物流调度方法 | |
CN104881426A (zh) | 一种关键字查询方法与装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |