CN104657516B - 一种关键字查询方法与装置 - Google Patents
一种关键字查询方法与装置 Download PDFInfo
- Publication number
- CN104657516B CN104657516B CN201510130790.XA CN201510130790A CN104657516B CN 104657516 B CN104657516 B CN 104657516B CN 201510130790 A CN201510130790 A CN 201510130790A CN 104657516 B CN104657516 B CN 104657516B
- Authority
- CN
- China
- Prior art keywords
- keyword
- minimum range
- array
- minimum
- currentelement
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9537—Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
Abstract
本发明公开了一种关键字查询方法与装置,其中,该方法包括:扫描定义范围内的每个物体,并获取每个物体的数据信息;将每个物体的数据信息构建为数据集合;获取查询请求,验证查询请求的合法性;若查询请求合法,则根据合法查询请求在数据集合中进行查询,并返回符合查询请求的结果。本发明将构建结果范围集合拆分为第一任务与第二任务并分别进行计算,避免了使用IR树,得以兼容大规模的数据运算,增强了扩展性;使用迭代算法构建结果范围集合可以保证获得的结果范围集合最优解,提高了工作效率。
Description
技术领域
本发明涉及信息处理技术,特别地,涉及一种关键字查询方法与装置。
背景技术
最近,随着大规模空间数据的出现,空间数据查询成为研究的热点。给定一组带有空间和文字描述的物体,一个空间关键词查询由一组关键字和位置信息构成。一个物体懂得文字描述含有制定关键字我们就说这个物体覆盖这个关键字。一个查询力图找到覆盖所有关键字的最近的物体。然而,在一些特定的应用中,只有一些物体的组合才能满足用户的需求;例如,一个游客想要找到附近一组感兴趣的地方,包括饭店、超市和旅馆;另一个例子是在交叉学科合作中,项目负责人往往想要找到不同领域的专家或者是具有不能技能的人。这样看来,一组物体协同的满足用户的需求可以用协同空间关键词查询确切的描述。
现有技术已经公开了基于IR树的协同空间关键词算法。在现有技术中,当待处理的数据集在增大时,算法被发现存在扩展性问题:构建IR树需要大量的时间和内存,并且找出的结果不能保证最优、效率低下;同时,不依赖索引的精确算法想要的到最优解需要大量的运行时间。
针对现有技术中协同空间关键词算法扩展性差、效率低下的问题,目前尚未有有效的解决方案。
发明内容
针对现有技术中协同空间关键词算法扩展性差、效率低下的问题,本发明的目的在于提出一种关键字查询方法与装置,能够兼容大规模的数据运算,扩展性好;且可以保证获得最优解,工作效率高。
基于上述目的,本发明提供的技术方案如下:
根据本发明的一个方面,提供了一种关键字查询方法,包括:
扫描定义范围内的每个物体,并获取每个物体的数据信息;
将每个物体的数据信息构建为数据集合;
获取查询请求,验证查询请求的合法性;
若查询请求合法,则根据合法查询请求在数据集合中进行查询,并返回符合查询请求的结果。
其中,每个物体的数据信息,包括每个物体的位置信息与关键字信息,其中,每个物体的关键字信息包括至少一关键字;获取查询请求,为获取一查询向量与一查询范围集合,其中,查询向量包括一查询位置信息与一查询关键字集合,其中,查询关键字集合包括至少一关键字,查询范围集合为数据集合的子集;验证查询请求的合法性,为判断查询范围集合中的每个物体元素是否都包含关键字集合中的至少一关键字,以及判断查询关键字集合是否为查询范围集合中的每个物体元素的关键字所组成的集合的子集,如果是,则认为查询请求合法;根据查询请求在数据集合中进行查询,为构建一结果范围集合,其中,结果范围集合为数据集合的子集,结果范围集合中的每个物体元素都包含关键字集合中的至少一关键字,查询关键字集合为结果范围集合中的每个物体元素的关键字所组成的集合的子集,并且结果范围集合与查询向量组成的损失函数应小于查询请求本身的加性损失函数,其中,加性损失函数为查询向量到查询范围集合或结果范围集合中每个物体元素的距离之和。
并且,构建结果范围集合包括:访问查询关键字集合,并根据查询关键字集合构建关键字排布集合,关键字排布集合为查询关键字集合的幂集合减去空集;建立最小距离数组与最小贡献物体数组,最小距离数组与最小贡献物体数组的长度数值等于关键字排布集合中元素的个数数值,最小距离数组与最小贡献物体数组的内容与关键字排布集合中的元素一一对应;依次指定关键字排布集合中每个元素为迭代关键字集合,并将迭代关键字集合与查询位置信息结合构成迭代向量;访问数据集合中的每个物体元素,并获取每个物体元素到迭代向量的最小距离、以及达成该最小距离的物体元素,并将迭代向量的最小距离存入最小距离数组内与关键字排布集合中当前元素相对应的位置上,并将达成该最小距离的物体元素存入最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上,其中,若关键字排布集合中当前元素未被数据集合中的任意物体元素的关键词所覆盖使得当前物体元素到迭代向量的最小距离不存在,则将正无穷存入最小距离数组内与关键字排布集合中当前元素相对应的位置上、以及最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上;根据数据集合建立物体对数据集合,物体对数据集合的元素为数据集合中的每两个不同物体元素进行组合的形成的物体对元素;访问物体对数据集合中的每个物体对元素,并获取每个物体对元素中两个物体元素各自到迭代向量的最小距离之和、以及达成该最小距离的物体对元素,并将迭代向量的最小距离之和与最小距离数组内与关键字排布集合中当前元素相对应的位置上的现有数字进行比对,若迭代向量的最小距离之和小于现有数字,则将现有数字置为迭代向量的最小距离之和,并清除最小贡献物体数组内与关键字排布集合中当前元素相对应位置上的内容,将达成该最小距离之和的物体对元素写入最小贡献物体数组内与关键字排布集合中当前元素相对应位置;依次指定关键字排布集合中每个元素为迭代关键字集合并执行上述步骤,直到关键字排布集合中的所有元素都被指定过;输出最小距离数组与最小贡献物体数组的最终结果,最小距离数组全数组之和为加性损失函数的最小值,最小贡献物体数组全数组所有元素组成的集合为结果范围集合。
并且,获取每个物体元素到迭代向量的最小距离、以及达成该最小距离的物体元素,并将迭代向量的最小距离存入最小距离数组内与关键字排布集合中当前元素相对应的位置上,并将达成该最小距离的物体元素存入最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上,为使用并行方式处理并写入数据;获取每个物体对元素中两个物体元素各自到迭代向量的最小距离之和、以及达成该最小距离的物体对元素,并将迭代向量的最小距离之和与最小距离数组内与关键字排布集合中当前元素相对应的位置上的现有数字进行比对,若迭代向量的最小距离之和小于现有数字,则将现有数字置为迭代向量的最小距离之和,并清除最小贡献物体数组内与关键字排布集合中当前元素相对应位置上的内容,将达成该最小距离之和的物体对元素写入最小贡献物体数组内与关键字排布集合中当前元素相对应位置,为使用串行方式处理并写入数据。
并且,将每个物体的数据信息构建为数据集合,为将每个物体的数据信息存储在分布式文件系统中,并将数据信息按分布式文件系统的形式构建为数据集合;获取每个物体元素到迭代向量的最小距离、以及达成该最小距离的物体元素,并将迭代向量的最小距离存入最小距离数组内与关键字排布集合中当前元素相对应的位置上,并将达成该最小距离的物体元素存入最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上,为通过使用服务器控制分布式文件系统的多个物理地址的处理终端处理并写入数据,并将处理并写入的数据传送到服务器;获取每个物体对元素中两个物体元素各自到迭代向量的最小距离之和、以及达成该最小距离的物体对元素,并将迭代向量的最小距离之和与最小距离数组内与关键字排布集合中当前元素相对应的位置上的现有数字进行比对,若迭代向量的最小距离之和小于现有数字,则将现有数字置为迭代向量的最小距离之和,并清除最小贡献物体数组内与关键字排布集合中当前元素相对应位置上的内容,将达成该最小距离之和的物体对元素写入最小贡献物体数组内与关键字排布集合中当前元素相对应位置,为服务器接受前一步骤的数据,并在服务器本地进行运算,进一步处理并写入数据。
根据本发明的另一个方面,提供了一种关键字查询装置,包括:
一服务器,服务器连接至多个处理终端,服务器用于获取查询请求、验证查询请求的合法性、并根据查询请求访问多个处理终端、向多个处理终端分配第一处理任务、接收第一处理任务的结果并进行第二处理任务、将第二处理任务的结果输出;
多个处理终端,多个处理终端均连接至服务器,每个处理终端各连接至一分布式存储器,每个处理终端用于接收服务器分配的第一处理任务、访问分布式存储器中的数据、进行第一处理任务并将第一处理任务输出到服务器;
多个分布式存储器,每个分布式存储器各连接至一处理终端,多个分布式存储器用于联合存储数据集合中的所有数据信息。
其中,第一任务包括:依次指定关键字排布集合中每个元素为迭代关键字集合,并将迭代关键字集合与查询位置信息结合构成迭代向量;访问数据集合中的每个物体元素,并获取每个物体元素到迭代向量的最小距离、以及达成该最小距离的物体元素,并将迭代向量的最小距离存入最小距离数组内与关键字排布集合中当前元素相对应的位置上,并将达成该最小距离的物体元素存入最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上,其中,若关键字排布集合中当前元素未被数据集合中的任意物体元素的关键词所覆盖使得当前物体元素到迭代向量的最小距离不存在,则将正无穷存入最小距离数组内与关键字排布集合中当前元素相对应的位置上、以及最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上。
其中,第二任务包括:根据数据集合建立物体对数据集合,物体对数据集合的元素为数据集合中的每两个不同物体元素进行组合的形成的物体对元素;访问物体对数据集合中的每个物体对元素,并获取每个物体对元素中两个物体元素各自到迭代向量的最小距离之和、以及达成该最小距离的物体对元素,并将迭代向量的最小距离之和与最小距离数组内与关键字排布集合中当前元素相对应的位置上的现有数字进行比对,若迭代向量的最小距离之和小于现有数字,则将现有数字置为迭代向量的最小距离之和,并清除最小贡献物体数组内与关键字排布集合中当前元素相对应位置上的内容,将达成该最小距离之和的物体对元素写入最小贡献物体数组内与关键字排布集合中当前元素相对应位置。
其中,服务器验证查询请求的合法性,为判断查询范围集合中的每个物体元素是否都包含关键字集合中的至少一关键字,以及判断查询关键字集合是否为查询范围集合中的每个物体元素的关键字所组成的集合的子集,如果是,则认为查询请求合法。
从上面所述可以看出,本发明提供的技术方案通过将构建结果范围集合拆分为第一任务与第二任务并分别进行计算,避免了使用IR树,得以兼容大规模的数据运算,增强了扩展性;使用迭代算法构建结果范围集合可以保证获得的结果范围集合最优解,提高了工作效率;另外,使用并行方式处理第一任务、串行方式处理第二任务,大幅度提高了第一任务的处理速度,减少了计算耗时。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据本发明实施例的一种关键字查询方法的流程图;
图2为根据本发明实施例的一种关键字查询方法的分布式文件系统架构图;
图3为根据本发明实施例的一种关键字查询装置的框图;
图4为根据本发明实施例的一种关键字查询方法与装置中,Sum-BS与Sum-Cao在GN数据集上的运算时间走势图;
图5为根据本发明实施例的一种关键字查询方法与装置中,Sum-BS与Sum-Cao在Web数据集上的运算时间走势图;
图6为根据本发明实施例的一种关键字查询方法与装置中,固定查询关键字数量为5时,Sum-BS与Sum-Cao在Hotel数据集上的运算时间走势图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进一步进行清楚、完整、详细地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明的实施例,提供了一种关键字查询方法。
如图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的加法损失函数
访问查询关键字集合,并根据查询关键字集合构建关键字排布集合,关键字排布集合为查询关键字集合的幂集合减去空集。关键字排布集合为所有可能形式的关键字的组合,对于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)的最小值,将损失函数降低到理论值。
获取每个物体元素到迭代向量的最小距离、以及达成该最小距离的物体元素,并将迭代向量的最小距离存入最小距离数组内与关键字排布集合中当前元素相对应的位置上,并将达成该最小距离的物体元素存入最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上,为使用并行方式处理并写入数据;获取每个物体对元素中两个物体元素各自到迭代向量的最小距离之和、以及达成该最小距离的物体对元素,并将迭代向量的最小距离之和与最小距离数组内与关键字排布集合中当前元素相对应的位置上的现有数字进行比对,若迭代向量的最小距离之和小于现有数字,则将现有数字置为迭代向量的最小距离之和,并清除最小贡献物体数组内与关键字排布集合中当前元素相对应位置上的内容,将达成该最小距离之和的物体对元素写入最小贡献物体数组内与关键字排布集合中当前元素相对应位置,为使用串行方式处理并写入数据。考虑到前半部分的计算量较大,使用并行方式计算前半部分可以缩减等待时间,提高计算速度。
具体地,如图2所示,将每个物体的数据信息构建为数据集合,为将每个物体的数据信息存储在分布式文件系统中,并将数据信息按分布式文件系统的形式构建为数据集合;获取每个物体元素到迭代向量的最小距离、以及达成该最小距离的物体元素,并将迭代向量的最小距离存入最小距离数组内与关键字排布集合中当前元素相对应的位置上,并将达成该最小距离的物体元素存入最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上,为通过使用服务器控制分布式文件系统的多个物理地址的处理终端处理并写入数据,并将处理并写入的数据传送到服务器;获取每个物体对元素中两个物体元素各自到迭代向量的最小距离之和、以及达成该最小距离的物体对元素,并将迭代向量的最小距离之和与最小距离数组内与关键字排布集合中当前元素相对应的位置上的现有数字进行比对,若迭代向量的最小距离之和小于现有数字,则将现有数字置为迭代向量的最小距离之和,并清除最小贡献物体数组内与关键字排布集合中当前元素相对应位置上的内容,将达成该最小距离之和的物体对元素写入最小贡献物体数组内与关键字排布集合中当前元素相对应位置,为服务器接受前一步骤的数据,并在服务器本地进行运算,进一步处理并写入数据。
根据本发明的实施例,还提供了一种关键字查询装置。
如图1所示,根据本发明实施例提供的关键字查询装置包括:
一服务器31,服务器31连接至多个处理终端32,服务器31用于获取查询请求、验证查询请求的合法性、并根据查询请求访问多个处理终端32、向多个处理终端32分配第一处理任务、接收第一处理任务的结果并进行第二处理任务、将第二处理任务的结果输出;
多个处理终端32,多个处理终端32均连接至服务器31,每个处理终端32各连接至一分布式存储器33,每个处理终端32用于接收服务器31分配的第一处理任务、访问分布式存储器33中的数据、进行第一处理任务并将第一处理任务输出到服务器31;
多个分布式存储器33,每个分布式存储器33各连接至一处理终端32,多个分布式存储器33用于联合存储数据集合中的所有数据信息。
其中,多个处理终端32执行第一任务包括:依次指定关键字排布集合中每个元素为迭代关键字集合,并将迭代关键字集合与查询位置信息结合构成迭代向量;访问数据集合中的每个物体元素,并获取每个物体元素到迭代向量的最小距离、以及达成该最小距离的物体元素,并将迭代向量的最小距离存入最小距离数组内与关键字排布集合中当前元素相对应的位置上,并将达成该最小距离的物体元素存入最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上,其中,若关键字排布集合中当前元素未被数据集合中的任意物体元素的关键词所覆盖使得当前物体元素到迭代向量的最小距离不存在,则将正无穷存入最小距离数组内与关键字排布集合中当前元素相对应的位置上、以及最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上。
其中,服务器31执行第二任务包括:根据数据集合建立物体对数据集合,物体对数据集合的元素为数据集合中的每两个不同物体元素进行组合的形成的物体对元素;访问物体对数据集合中的每个物体对元素,并获取每个物体对元素中两个物体元素各自到迭代向量的最小距离之和、以及达成该最小距离的物体对元素,并将迭代向量的最小距离之和与最小距离数组内与关键字排布集合中当前元素相对应的位置上的现有数字进行比对,若迭代向量的最小距离之和小于现有数字,则将现有数字置为迭代向量的最小距离之和,并清除最小贡献物体数组内与关键字排布集合中当前元素相对应位置上的内容,将达成该最小距离之和的物体对元素写入最小贡献物体数组内与关键字排布集合中当前元素相对应位置。
其中,服务器31验证查询请求的合法性,为判断查询范围集合中的每个物体元素是否都包含关键字集合中的至少一关键字,以及判断查询关键字集合是否为查询范围集合中的每个物体元素的关键字所组成的集合的子集,如果是,则认为查询请求合法。
实验证明了本发明的方法相对于现有技术的方法具有较好的效果。我们通过在GN数据集与Web数据集上的实验评估了当查询关键字和数据集平均关键字数发生改变时算法的效率。结果如图4所示,Sum-BS(本发明的技术方案)在GN数据集上比Sum-Cao(一种现有技术的算法)明显的缩短了运行时间。另一方面,Sum-BS和Sum-Cao的第二任务上运行时间都与查询关键字呈现相关性。由于并行化处理数据的帮助,Sum-BS的运行时间从1.71s缓慢上升到3.28s而Sum-Cao从2s大幅上升到548s。图5是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个数据集。图6表明,Sum-Cao在小数据集上的表现比Sum-BS在并行化框架下的表现要好但Sum-BS仍然能高效的并行处理CoSKQ问题。原因主要有以下两点:Hotel数据集的物体数量与关键字数量都很小,集中式算法也能高效处理;同时,并行框架需要额外的通信开销。
综上所述,借助于本发明的上述技术方案,通过将构建结果范围集合拆分为第一任务与第二任务并分别进行计算,避免了使用IR树,得以兼容大规模的数据运算,增强了扩展性;使用迭代算法构建结果范围集合可以保证获得的结果范围集合最优解,提高了工作效率;另外,使用并行方式处理第一任务、串行方式处理第二任务,大幅度提高了第一任务的处理速度,减少了计算耗时。
所属领域的普通技术人员应当理解:以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种关键字查询方法,其特征在于,包括:
扫描定义范围内的每个物体,并获取所述每个物体的数据信息;所述每个物体的数据信息,包括每个物体的位置信息与关键字信息,其中,所述每个物体的关键字信息包括至少一关键字;
将所述每个物体的数据信息构建为数据集合;
获取查询请求,验证所述查询请求的合法性;所述获取查询请求,为获取一查询向量与一查询范围集合,其中,所述查询向量包括一查询位置信息与一查询关键字集合,其中,所述查询关键字集合包括至少一关键字,所述查询范围集合为所述数据集合的子集;所述验证所述查询请求的合法性,为判断所述查询范围集合中的每个物体元素是否都包含所述关键字集合中的至少一关键字,以及判断所述查询关键字集合是否为所述查询范围集合中的每个物体元素的关键字所组成的集合的子集,如果是,则认为所述查询请求合法;
若所述查询请求合法,则根据所述合法查询请求在所述数据集合中进行查询,并返回符合查询请求的结果;所述根据所述查询请求在所述数据集合中进行查询,为构建一结果范围集合,其中,所述结果范围集合为所述数据集合的子集,所述结果范围集合中的每个物体元素都包含所述关键字集合中的至少一关键字,所述查询关键字集合为所述结果范围集合中的每个物体元素的关键字所组成的集合的子集,并且所述结果范围集合与所述查询向量组成的损失函数应小于所述查询请求本身的加性损失函数,其中,所述加性损失函数为所述查询向量到所述查询范围集合或所述结果范围集合中每个物体元素的距离之和。
2.根据权利要求1所述的一种关键字查询方法,其特征在于,构建所述结果范围集合包括:
访问所述查询关键字集合,并根据所述查询关键字集合构建关键字排布集合,所述关键字排布集合为所述查询关键字集合的幂集合减去空集;
建立最小距离数组与最小贡献物体数组,所述最小距离数组与所述最小贡献物体数组的长度数值等于所述关键字排布集合中元素的个数数值,所述最小距离数组与所述最小贡献物体数组的内容与所述关键字排布集合中的元素一一对应;
依次指定所述关键字排布集合中每个元素为迭代关键字集合,并将所述迭代关键字集合与所述查询位置信息结合构成迭代向量;
访问所述数据集合中的每个物体元素,并获取所述每个物体元素到所述迭代向量的最小距离、以及达成该最小距离的物体元素,并将所述迭代向量的最小距离存入所述最小距离数组内与关键字排布集合中当前元素相对应的位置上,并将所述达成该最小距离的物体元素存入最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上,其中,若关键字排布集合中当前元素未被所述数据集合中的任意物体元素的关键词所覆盖使得当前物体元素到所述迭代向量的最小距离不存在,则将正无穷存入所述最小距离数组内与关键字排布集合中当前元素相对应的位置上、以及最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上;
根据所述数据集合建立物体对数据集合,所述物体对数据集合的元素为所述数据集合中的每两个不同物体元素进行组合的形成的物体对元素;
访问所述物体对数据集合中的每个物体对元素,并获取所述每个物体对元素中两个物体元素各自到所述迭代向量的最小距离之和、以及达成该最小距离的物体对元素,并将所述迭代向量的最小距离之和与所述最小距离数组内与关键字排布集合中当前元素相对应的位置上的现有数字进行比对,若所述迭代向量的最小距离之和小于现有数字,则将现有数字置为所述迭代向量的最小距离之和,并清除所述最小贡献物体数组内与关键字排布集合中当前元素相对应位置上的内容,将所述达成该最小距离之和的物体对元素写入所述最小贡献物体数组内与关键字排布集合中当前元素相对应位置;
依次指定所述关键字排布集合中每个元素为迭代关键字集合并执行上述步骤,直到所述关键字排布集合中的所有元素都被指定过;
输出所述最小距离数组与所述最小贡献物体数组的最终结果,所述最小距离数组全数组之和为所述加性损失函数的最小值,所述最小贡献物体数组全数组所有元素组成的集合为所述结果范围集合。
3.根据权利要求2所述的一种关键字查询方法,其特征在于:
获取所述每个物体元素到所述迭代向量的最小距离、以及达成该最小距离的物体元素,并将所述迭代向量的最小距离存入所述最小距离数组内与关键字排布集合中当前元素相对应的位置上,并将所述达成该最小距离的物体元素存入最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上,为使用并行方式处理并写入数据;
获取所述每个物体对元素中两个物体元素各自到所述迭代向量的最小距离之和、以及达成该最小距离的物体对元素,并将所述迭代向量的最小距离之和与所述最小距离数组内与关键字排布集合中当前元素相对应的位置上的现有数字进行比对,若所述迭代向量的最小距离之和小于现有数字,则将现有数字置为所述迭代向量的最小距离之和,并清除所述最小贡献物体数组内与关键字排布集合中当前元素相对应位置上的内容,将所述达成该最小距离之和的物体对元素写入所述最小贡献物体数组内与关键字排布集合中当前元素相对应位置,为使用串行方式处理并写入数据。
4.根据权利要求3所述的一种关键字查询方法,其特征在于:
将所述每个物体的数据信息构建为数据集合,为将所述每个物体的数据信息存储在分布式文件系统中,并将所述数据信息按所述分布式文件系统的形式构建为数据集合;
获取所述每个物体元素到所述迭代向量的最小距离、以及达成该最小距离的物体元素,并将所述迭代向量的最小距离存入所述最小距离数组内与关键字排布集合中当前元素相对应的位置上,并将所述达成该最小距离的物体元素存入最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上,为通过使用服务器控制所述分布式文件系统的多个物理地址的处理终端处理并写入数据,并将所述处理并写入的数据传送到服务器;
获取所述每个物体对元素中两个物体元素各自到所述迭代向量的最小距离之和、以及达成该最小距离的物体对元素,并将所述迭代向量的最小距离之和与所述最小距离数组内与关键字排布集合中当前元素相对应的位置上的现有数字进行比对,若所述迭代向量的最小距离之和小于现有数字,则将现有数字置为所述迭代向量的最小距离之和,并清除所述最小贡献物体数组内与关键字排布集合中当前元素相对应位置上的内容,将所述达成该最小距离之和的物体对元素写入所述最小贡献物体数组内与关键字排布集合中当前元素相对应位置,为服务器接受前一步骤的数据,并在服务器本地进行运算,进一步处理并写入数据。
5.一种关键字查询装置,其特征在于,包括:
一服务器,所述服务器连接至多个处理终端,所述服务器用于获取查询请求、验证所述查询请求的合法性、并根据所述查询请求访问所述多个处理终端、向所述多个处理终端分配第一处理任务、接收所述第一处理任务的结果并进行第二处理任务、将所述第二处理任务的结果输出;
多个处理终端,所述多个处理终端均连接至所述服务器,所述每个处理终端各连接至一分布式存储器,所述每个处理终端用于接收服务器分配的所述第一处理任务、访问分布式存储器中的数据、进行所述第一处理任务并将所述第一处理任务输出到所述服务器;
多个分布式存储器,所述每个分布式存储器各连接至一所述处理终端,所述多个分布式存储器用于联合存储所述数据集合中的所有数据信息;
其中,所述第一处理任务包括:
依次指定所述关键字排布集合中每个元素为迭代关键字集合,并将所述迭代关键字集合与所述查询位置信息结合构成迭代向量;
访问所述数据集合中的每个物体元素,并获取所述每个物体元素到所述迭代向量的最小距离、以及达成该最小距离的物体元素,并将所述迭代向量的最小距离存入所述最小距离数组内与关键字排布集合中当前元素相对应的位置上,并将所述达成该最小距离的物体元素存入最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上,其中,若关键字排布集合中当前元素未被所述数据集合中的任意物体元素的关键词所覆盖使得当前物体元素到所述迭代向量的最小距离不存在,则将正无穷存入所述最小距离数组内与关键字排布集合中当前元素相对应的位置上、以及最小贡献物体数组内与关键字排布集合中当前元素相对应的位置上;
其中,所述第二处理任务包括:
根据所述数据集合建立物体对数据集合,所述物体对数据集合的元素为所述数据集合中的每两个不同物体元素进行组合的形成的物体对元素;
访问所述物体对数据集合中的每个物体对元素,并获取所述每个物体对元素中两个物体元素各自到所述迭代向量的最小距离之和、以及达成该最小距离的物体对元素,并将所述迭代向量的最小距离之和与所述最小距离数组内与关键字排布集合中当前元素相对应的位置上的现有数字进行比对,若所述迭代向量的最小距离之和小于现有数字,则将现有数字置为所述迭代向量的最小距离之和,并清除所述最小贡献物体数组内与关键字排布集合中当前元素相对应位置上的内容,将所述达成该最小距离之和的物体对元素写入所述最小贡献物体数组内与关键字排布集合中当前元素相对应位置。
6.根据权利要求5所述的一种关键字查询装置,其特征在于,所述服务器验证所述查询请求的合法性,为判断所述查询范围集合中的每个物体元素是否都包含所述关键字集合中的至少一关键字,以及判断所述查询关键字集合是否为所述查询范围集合中的每个物体元素的关键字所组成的集合的子集,如果是,则认为所述查询请求合法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510130790.XA CN104657516B (zh) | 2015-03-24 | 2015-03-24 | 一种关键字查询方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510130790.XA CN104657516B (zh) | 2015-03-24 | 2015-03-24 | 一种关键字查询方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104657516A CN104657516A (zh) | 2015-05-27 |
CN104657516B true CN104657516B (zh) | 2017-12-22 |
Family
ID=53248643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510130790.XA Active CN104657516B (zh) | 2015-03-24 | 2015-03-24 | 一种关键字查询方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104657516B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10678792B2 (en) * | 2015-10-23 | 2020-06-09 | Oracle International Corporation | Parallel execution of queries with a recursive clause |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136363A (zh) * | 2013-03-14 | 2013-06-05 | 曙光信息产业(北京)有限公司 | 查询处理方法和集群数据库系统 |
CN103455338A (zh) * | 2013-09-22 | 2013-12-18 | 广州中国科学院软件应用技术研究所 | 一种数据获取方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002203057A (ja) * | 2000-11-01 | 2002-07-19 | Cec:Kk | 付加価値データ倉庫システム |
-
2015
- 2015-03-24 CN CN201510130790.XA patent/CN104657516B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136363A (zh) * | 2013-03-14 | 2013-06-05 | 曙光信息产业(北京)有限公司 | 查询处理方法和集群数据库系统 |
CN103455338A (zh) * | 2013-09-22 | 2013-12-18 | 广州中国科学院软件应用技术研究所 | 一种数据获取方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104657516A (zh) | 2015-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Erwig | The graph Voronoi diagram with applications | |
CN103345526B (zh) | 一种云环境下高效的隐私保护密文查询方法 | |
Xuan et al. | Voronoi-based multi-level range search in mobile navigation | |
Wollan | The structure of graphs not admitting a fixed immersion | |
EP2220824A1 (en) | Low power ternary content-addressable memory (tcams) for very large forwarding tables | |
US7512282B2 (en) | Methods and apparatus for incremental approximate nearest neighbor searching | |
CN108008918A (zh) | 数据处理方法、存储节点及分布式存储系统 | |
Thorup | Quick k-median, k-center, and facility location for sparse graphs | |
Dynia et al. | Why robots need maps | |
CN107404530A (zh) | 基于用户兴趣相似度的社交网络协作缓存方法及装置 | |
CN111460234B (zh) | 图查询方法、装置、电子设备及计算机可读存储介质 | |
CN104391908B (zh) | 一种图上基于局部敏感哈希的多关键字索引方法 | |
CN105357247B (zh) | 基于分层云对等网络的多维属性云资源区间查找方法 | |
Islam et al. | An ant colony optimization algorithm for waste collection vehicle routing with time windows, driver rest period and multiple disposal facilities | |
CN107733894A (zh) | 逻辑接口报文的比对方法、系统、设备及存储介质 | |
CN109190052A (zh) | 一种分布式环境下基于社会感知的空间索引方法 | |
CN104657516B (zh) | 一种关键字查询方法与装置 | |
CN107704475A (zh) | 多层分布式非结构化数据存储方法、查询方法及装置 | |
Chalermsook et al. | Multi-finger binary search trees | |
CN107294855B (zh) | 一种高性能计算网络下的tcp查找优化方法 | |
Salgado | Keyword-aware skyline routes search in indoor venues | |
CN104881426B (zh) | 一种关键字查询方法与装置 | |
CN102739550B (zh) | 基于随机副本分配的多存储器流水路由体系结构 | |
Cvetkovski et al. | On the choice of a spanning tree for greedy embedding of network graphs | |
CN108829694A (zh) | 路网上的弹性聚合最近邻查询g树的优化方法 |
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 |