1.一种基于空间距离约束的空间关键字查询方法,其特征在于,包括:获取用户输入的空间关键字、空间距离约束、目标数量,所述空间关键字包括待查询地理位置和待查询文本关键字集合;
获取预设的空间范围内的空间文本对象的集合,所述空间文本对象包括地理位置和文本关键字集合;
将所述空间范围按照预设规则划分为网格,并为每一个网格进行编码;
为所述空间文本对象的集合按照文本关键字建立倒排表,并为每一个文本关键字建立一棵聚集线性四分树,所述倒排表中存储有文本关键字和聚集线性四分树的对应关系;
根据所述待查询地理位置、所述待查询文本关键字集合、所述空间距离约束、所述网格、所述网格对应的编码、所述倒排表、所述目标数量得到查询结果集合;
所述根据所述待查询地理位置、所述待查询文本关键字集合、所述空间距离约束、所述网格、所述网格对应的编码、所述倒排表、所述目标数量得到查询结果集合,包括:获取所述空间关键字所在的目标网格和所述目标网格的目标编码,根据所述倒排表,获取所述待查询文本关键字集合中的每一个文本关键字对应的聚集线性四分树,得到所述待查询文本关键字集合对应的聚集线性四分树集合;
计算所述空间关键字与所述目标网格的空间文本相似性,将所述目标编码和所述空间文本相似性的对应关系保存在栈中,将所述目标网格标记为已访问;
若所述聚集线性四分树集合中的任意一棵聚集线性四分树中存在所述目标编码,则在所述聚集线性四分树集合中获取所述目标编码对应的空间文本对象的集合;
将所述目标编码对应的空间文本对象的集合确定为第一空间文本对象集合,分别计算所述空间关键字与所述第一空间文本对象集合中的每一个空间文本对象的空间文本相似性和空间距离,去除空间距离大于所述空间距离约束的空间文本对象,并将所述第一空间文本对象集合中剩余的空间文本对象按照空间文本相似性升序进行排序,得到第二空间文本对象集合;
将所述目标数量设为k,若所述第二空间文本对象集合中的空间文本对象的数量大于k,则从所述第二空间文本对象集合中获取前k个空间文本对象,将所述前k个空间文本对象保存在候选结果集合中,否则将所述第二空间文本对象集合中的空间文本对象保存在所述候选结果集合中;
将所述候选结果集合中的空间文本对象按照与所述空间关键字的空间文本相似性升序进行排序得到排序后的候选结果集合;
获取此时的栈顶元素确定为第一元素,若所述排序后的候选结果集合的空间文本对象的数量等于k且第k个空间文本对象与所述空间关键字的空间文本相似性小于所述第一元素中的空间文本相似性,或所述待查询地理位置与所述第一元素中的编码对应的网格的空间距离大于所述空间距离约束,则所述排序后的候选结果集合即为所述查询结果集合,否则根据所述第一元素中的编码计算得到与所述第一元素中的编码对应的网格相邻的8个网格的编码,并将所述相邻的8个网格中未被标记为已访问的网格记为第一网格;
若存在所述第一网格,且所述第一网格与所述待查询地理位置的空间距离小于或等于所述空间距离约束,则计算所述第一网格与所述空间关键字的空间文本相似性,将所述第一网格的编码和空间文本相似性的对应关系保存在所述栈中,并将所述第一网格标记为已访问,将所述栈中的元素按照空间文本相似性升序进行排序;
若所述聚集线性四分树集合中的任意一棵聚集线性四分树中均不存在所述目标编码,则根据所述目标编码计算得到与所述目标网格相邻的8个网格的编码,并将与所述目标网格相邻的8个网格中未被标记为已访问的网格记为第二网格;
若存在所述第二网格,且所述第二网格与所述待查询地理位置的空间距离小于或等于所述空间距离约束,则计算所述第二网格与所述空间关键字的空间文本相似性,将所述第二网格的编码和空间文本相似性的对应关系保存在所述栈中,并将所述第二网格标记为已访问,将所述栈中的元素按照空间文本相似性升序进行排序;
获取此时的栈顶元素确定为第二元素,若所述排序后的候选结果集中的空间文本对象的数量小于k或第k个空间文本对象与所述空间关键字的空间文本相似性大于或等于所述第二元素中的空间文本相似性,则获取所述第二元素中的编码确定为所述目标编码,所述第二元素中的编码对应的网格确定为所述目标网格,并继续执行所述若所述聚集线性四分树集合中的任意一棵聚集线性四分树中存在所述目标编码,则在所述聚集线性四分树集合中获取所述目标编码对应的空间文本对象的集合的步骤。
2.如权利要求1所述的基于空间距离约束的空间关键字查询方法,其特征在于,所述将所述空间范围按照预设规则划分为网格,并为每一个网格进行编码,包括:获取待建立的聚集线性四分树的预设深度;
根据所述预设深度将所述空间范围划分为网格,并为每一个网格确定一个四进制莫顿码编码。
3.如权利要求1所述的基于空间距离约束的空间关键字查询方法,其特征在于,所述文本关键字集合中的每一个文本关键字具有一个对应的权重;
所述为所述空间文本对象的集合按照文本关键字建立倒排表,并为每一个文本关键字建立一棵聚集线性四分树,包括:
获取所述空间文本对象的集合中的每一个空间文本对象所在的网格的编码;
根据所述每一个空间文本对象所在的网格的编码和每一个空间文本对象中文本关键字对应的权重,为每一个文本关键字生成一棵聚集线性四分树。
4.如权利要求1所述的基于空间距离约束的空间关键字查询方法,其特征在于,所述计算所述空间关键字与所述目标网格的空间文本相似性,包括:计算所述空间关键字与所述目标网格的空间相似性和文本相似性,并根据所述空间相似性和所述文本相似性得到所述空间关键字与所述目标网格的空间文本相似性。
5.一种基于空间距离约束的空间关键字查询系统,其特征在于,包括:第一获取模块,用于获取用户输入的空间关键字、空间距离约束、目标数量,所述空间关键字包括待查询地理位置和待查询文本关键字集合;
第二获取模块,用于获取预设的空间范围内的空间文本对象的集合,所述空间文本对象包括地理位置和文本关键字集合;
空间划分模块,用于将所述空间范围按照预设规则划分为网格,并为每一个网格进行编码;
倒排表建立模块,用于为所述空间文本对象的集合按照文本关键字建立倒排表,并为每一个文本关键字建立一棵聚集线性四分树,所述倒排表中存储有文本关键字和聚集线性四分树的对应关系;
查询结果获取模块,用于根据所述待查询地理位置、所述待查询文本关键字集合、所述空间距离约束、所述网格、所述网格对应的编码、所述倒排表、所述目标数量得到查询结果集合;
所述查询结果获取模块包括:
四分树集合获取单元,用于获取所述空间关键字所在的目标网格和所述目标网格的目标编码,根据所述倒排表,获取所述待查询文本关键字集合中的每一个文本关键字对应的聚集线性四分树,得到所述待查询文本关键字集合对应的聚集线性四分树集合;
第一计算单元,用于计算所述空间关键字与所述目标网格的空间文本相似性,将所述目标编码和所述空间文本相似性的对应关系保存在栈中,将所述目标网格标记为已访问;
文本对象获取单元,用于若所述聚集线性四分树集合中的任意一棵聚集线性四分树中存在所述目标编码,则在所述聚集线性四分树集合中获取所述目标编码对应的空间文本对象的集合;
第二计算单元,用于将所述目标编码对应的空间文本对象的集合确定为第一空间文本对象集合,分别计算所述空间关键字与所述第一空间文本对象集合中的每一个空间文本对象的空间文本相似性和空间距离,去除空间距离大于所述空间距离约束的空间文本对象,并将所述第一空间文本对象集合中剩余的空间文本对象按照空间文本相似性升序进行排序,得到第二空间文本对象集合;
保存单元,用于将所述目标数量设为k,若所述第二空间文本对象集合中的空间文本对象的数量大于k,则从所述第二空间文本对象集合中获取前k个空间文本对象,将所述前k个空间文本对象保存在候选结果集合中,否则将所述第二空间文本对象集合中的空间文本对象保存在所述候选结果集合中;
排序单元,用于将所述候选结果集合中的空间文本对象按照与所述空间关键字的空间文本相似性升序进行排序得到排序后的候选结果集合;
查询结果获取单元,用于获取此时的栈顶元素确定为第一元素,若所述排序后的候选结果集合的空间文本对象的数量等于k且第k个空间文本对象与所述空间关键字的空间文本相似性小于所述第一元素中的空间文本相似性,或所述待查询地理位置与所述第一元素中的编码对应的网格的空间距离大于所述空间距离约束,则所述排序后的候选结果集合即为所述查询结果集合,否则根据所述第一元素中的编码计算得到与所述第一元素中的编码对应的网格相邻的8个网格的编码,并将所述相邻的8个网格中未被标记为已访问的网格记为第一网格;
第三计算单元,用于若存在所述第一网格,且所述第一网格与所述待查询地理位置的空间距离小于或等于所述空间距离约束,则计算所述第一网格与所述空间关键字的空间文本相似性,将所述第一网格的编码和空间文本相似性的对应关系保存在所述栈中,并将所述第一网格标记为已访问,将所述栈中的元素按照空间文本相似性升序进行排序;
相邻编码获取单元,用于若所述聚集线性四分树集合中的任意一棵聚集线性四分树中均不存在所述目标编码,则根据所述目标编码计算得到与所述目标网格相邻的8个网格的编码,并将与所述目标网格相邻的8个网格中未被标记为已访问的网格记为第二网格;
第四计算单元,用于若存在所述第二网格,且所述第二网格与所述待查询地理位置的空间距离小于或等于所述空间距离约束,则计算所述第二网格与所述空间关键字的空间文本相似性,将所述第二网格的编码和空间文本相似性的对应关系保存在所述栈中,并将所述第二网格标记为已访问,将所述栈中的元素按照空间文本相似性升序进行排序;
循环单元,用于获取此时的栈顶元素确定为第二元素,若所述排序后的候选结果集中的空间文本对象的数量小于k或第k个空间文本对象与所述空间关键字的空间文本相似性大于或等于所述第二元素中的空间文本相似性,则获取所述第二元素中的编码确定为所述目标编码,所述第二元素中的编码对应的网格确定为所述目标网格,并继续执行所述若所述聚集线性四分树集合中的任意一棵聚集线性四分树中存在所述目标编码,则在所述聚集线性四分树集合中获取所述目标编码对应的空间文本对象的集合的步骤。
6.如权利要求5所述的基于空间距离约束的空间关键字查询系统,其特征在于,所述空间划分模块包括:
预设深度获取单元,用于获取待建立的聚集线性四分树的预设深度;
编码单元,用于根据所述预设深度将所述空间范围划分为网格,并为每一个网格确定一个四进制莫顿码编码。
7.如权利要求5所述的基于空间距离约束的空间关键字查询系统,其特征在于,所述文本关键字集合中的每一个文本关键字具有一个对应的权重;
所述倒排表建立模块还包括:
编码获取单元,用于获取所述空间文本对象的集合中的每一个空间文本对象所在的网格的编码;
四分树生成单元,用于根据所述每一个空间文本对象所在的网格的编码和每一个空间文本对象中文本关键字对应的权重,为每一个文本关键字生成一棵聚集线性四分树。
8.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4任一项所述基于空间距离约束的空间关键字查询方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被一个或多个处理器执行时实现如权利要求1至4任一项所述基于空间距离约束的空间关键字查询方法的步骤。