分布式订阅发布模式下的空间范围-关键字查询方法技术

技术编号:27686492 阅读:25 留言:0更新日期:2021-03-17 04:00
本发明专利技术提供了一种分布式订阅发布模式下的空间范围‑关键字查询方法,包括:发布服务器接收地理文本流数据,其中,发布服务器上部署有每个订阅服务器的空间签名和文本签名组,空间签名针对空间范围‑关键字查询的空间范围部分采用空间布谷鸟过滤器技术生成,文本签名组针对空间范围‑关键字查询的关键字集合部分采用单排序最小哈希算法和倒排文件四叉树方法生成;发布服务器遍历每个空间签名和每个文本签名组,与地理文本流数据进行空间包含关系判断和文本相似性计算,基于前述判断和计算结果判断地理文本流数据是否命中订阅服务器;若是,则把地理文本流数据转发到命中的订阅服务器上。本发明专利技术可大大降低发布服务器和订阅服务器之间的高通信开销。

【技术实现步骤摘要】
分布式订阅发布模式下的空间范围-关键字查询方法
本专利技术涉及信息查询
,具体涉及一种分布式订阅发布模式下的空间范围-关键字查询方法。
技术介绍
由于装有GPS的移动设备的数量激增,包含文本信息和地理位置信息的海量地理文本数据正在以前所未有的速度生成。这些地理文本数据以流的方式生成,包含对用户有价值的信息。当用户关注特定地区的事件,例如所在城市的美食,他们希望收到在给定空间范围中与此类事件相关的最新地理文本数据。每个用户选择自己的兴趣(如最喜欢的食物或运动)和位置范围,作为一个空间范围-关键字订阅。根据空间范围-关键字订阅,发布者(如本地企业)持续生成的地理文本消息流(如电子优惠券促销和带有位置信息的tweet集)将迅速反馈给相关用户。目前,由于单机的计算资源有限,一般采用分布式发布/订阅模式,即多个发布服务器将发布数据转发到对应的多个订阅服务器中,但大量的发布流数据需要从发布服务器转发到对应空间范围关键字的订阅服务器上,由此存在大量数据转发,从而导致通讯开销极高。
技术实现思路
本专利技术解决的问题是现有技术中分布式订阅/发布模式下的空间范围-关键字查询通信开销大。为解决上述问题,本专利技术提供一种分布式订阅发布模式下的空间范围-关键字查询方法,包括:发布服务器接收地理文本流数据,其中,所述发布服务器上部署有每个订阅服务器的空间签名和文本签名组,其中,所述空间签名针对空间范围-关键字查询的空间范围部分采用空间布谷鸟过滤器技术生成,所述文本签名组针对空间范围-关键字查询的关键字集部分采用单排序最小哈希算法和倒排文件四叉树方法生成;且每个订阅服务器生成的空间签名和文本签名组空间开销都很小,空间签名的空间开销小于等于标准的布隆过滤器。文本开销为:8bytes,其中表示位置值数目(默认值2500),也表示第三预设公式字符串分组个数。所述发布服务器遍历每个空间签名和每个文本签名组,与所述地理文本流数据进行空间包含关系判断和文本相似性计算;所述发布服务器基于所述空间包含关系判断和所述文本相似性计算结果,判断所述地理文本流数据是否命中至少一个所述订阅服务器;若是,则由所述发布服务器把所述地理文本流数据转发到命中的订阅服务器上。可选地,在所述发布服务器接收地理文本流数据之前还包括:把整个二维空间划分为多个等大小区域的集合ε,并对ε中的每个区域r分配一个唯一的ID,用于标记该区域。这些区域的尺寸可以设置为任意小的尺寸,那么对于所述订阅服务器上的每个空间范围-关键字查询的空间范围可以表示为ε的子集合,该子集合表示为△。其中,子集合∆由至少一个区域组成,子集合∆中的每个区域r都与查询的空间范围重叠。空间布谷鸟过滤器(即布谷鸟哈希表HT)可以存储每个区域r的标记ID信息。在所述订阅服务器上初始化一个布谷鸟哈希表。遍历每个空间范围-关键字查询的区域r,计算区域r.ID的指纹finger(r.ID),h1=hash(r.ID),h2=h1hash(finger(r.ID)),是异或运算符号,h1与h2的计算结果分别对应HT中两个桶值。分别判断空间范围-关键字查询中的所述区域r.ID在所述布谷鸟哈希表中对应的两个桶中是否有空闲位置,其中,所述两个桶表示为bucket[h1]和bucket[h2]。若是,则将空间范围-关键字查询中的所述区域r.ID的指纹插入到所述空闲位置中。若否,则使用空间范围-关键字查询中的所述区域r.ID的指纹替换掉bucket[h1]或bucket[h2]的一个指纹;得到最终的哈希表,所述最终的哈希表作为所述订阅服务器的所述空间签名。可选地,在所述发布服务器接收地理文本流数据之前还包括:在所述订阅服务器上利用单排序最小哈希算法生成订阅关键字集合的签名,得到所述订阅服务器中四叉树所有叶子结点的关键字的签名,并把所述所有叶子结点的关键字的签名汇总到签名集合中;当所有叶子节点所对应的文本签名组大于预设阈值时,把拥有同一个父节点的四个子节点的文本签名合并为一个新的文本签名,汇聚成新的签名集合,直到签名集合中签名的个数小于或等于预设阈值,并将此时的签名集合作为所述文本签名组。可选地,所述在所述订阅服务器上利用单排序最小哈希算法生成订阅关键字集合的签名包括:将所述订阅关键字集合进行哈希运算,得到由0和1组成的字符串;将所述字符串进行分组,得到多个字符串组;获取每个所述字符串组中第一个非零值所处的位置;将每个所述字符串组中第一个非零值所处的位置所组成的集合作为所述订阅关键字集合的签名。可选地,所述发布服务器遍历每个空间签名和每个文本签名组,与所述地理文本流数据进行空间包含关系判断和文本相似性计算包括:基于第二预设公式判断所述地理文本流数据的地理位置所在区域rt是否位于所述空间签名中,其中,所述第二预设公式为:i=h1(rt.ID),j=h2(i,f(rt.ID))其中,rt表示所述地理文本流数据的地理位置所在区域(rt∈ε),rt.ID表示区域rt所对应的唯一标记ID,h1和h2表示两个哈希函数,f(rt.ID)是rt.ID的指纹,i和j表示空间签名的哈希表中所对应的两个桶值;判断布谷鸟哈希表的i桶或j桶中是否包含有f(rt.ID)值,如果包含,则表示区域rt位于空间签名中,即地理文本流数据的地理位置所在区域rt包含于所述空间签名,如果不包含,则表示区域rt不位于空间签名中,可以舍去。可选地,所述发布服务器遍历每个空间签名和每个文本签名组,与所述地理文本流数据进行空间包含关系判断和文本相似性计算包括:基于所述单排序最小哈希算法生成所述地理文本流数据的关键字集合对应的最小哈希签名;基于第三预设公式计算所述最小哈希签名与所述文本签名组的相似度,其中,所述第三预设公式为:,其中,表示所述地理文本流数据的关键字集合,表示所述订阅关键字集合,表示所述地理文本流数据的关键字集合第个字符串组的最小哈希值,表示所述订阅关键字集合第个字符串组的最小哈希值,表示所述最小哈希签名与所述文本签名组的相似度,表示字符串分组个数,表示第个字符串组。可选地,所述基于所述空间包含关系判断和所述文本相似性计算结果,判断所述地理文本流数据是否命中至少一个订阅服务器包括:当查到所述地理文本流数据的地理位置所在区域的指纹包含于所述空间签名,且所述最小哈希签名与所述文本签名组的相似度大于或等于预设相似度阈值,则所述地理文本流数据命中至少一个订阅服务器,其中,所述预设相似度阈值为。可选地,所述分布式订阅发布模式下的空间范围-关键字查询方法还包括:由所述订阅服务器将所述空间签名和所述文本签名组部署到所述发布服务器上。可选地,在所述由所述订阅服务器将所述空间签名和所述文本签名组部署到所述发布服务器上之后,还包括:当所述订阅服务器接收到新输入的空间范围-关键字查询订阅时,更新带有倒排文件的四叉树索引;基于更新后的倒排文件四叉树索引,更新本文档来自技高网...

【技术保护点】
1.一种分布式订阅发布模式下的空间范围-关键字查询方法,其特征在于,包括:/n发布服务器接收地理文本流数据,其中,所述发布服务器上部署有每个订阅服务器的空间签名和文本签名组,其中,所述空间签名针对空间范围-关键字查询的空间范围部分采用空间布谷鸟过滤器技术生成,所述文本签名组针对空间范围-关键字查询的关键字集合部分采用单排序最小哈希算法和倒排文件四叉树方法生成;/n所述发布服务器遍历每个所述空间签名和每个所述文本签名组,与所述地理文本流数据进行空间包含关系判断和文本相似性计算;/n所述发布服务器基于所述空间包含关系判断和所述文本相似性计算结果,判断所述地理文本流数据是否命中至少一个所述订阅服务器;/n若是,则由所述发布服务器把所述地理文本流数据转发到命中的订阅服务器上。/n

【技术特征摘要】
1.一种分布式订阅发布模式下的空间范围-关键字查询方法,其特征在于,包括:
发布服务器接收地理文本流数据,其中,所述发布服务器上部署有每个订阅服务器的空间签名和文本签名组,其中,所述空间签名针对空间范围-关键字查询的空间范围部分采用空间布谷鸟过滤器技术生成,所述文本签名组针对空间范围-关键字查询的关键字集合部分采用单排序最小哈希算法和倒排文件四叉树方法生成;
所述发布服务器遍历每个所述空间签名和每个所述文本签名组,与所述地理文本流数据进行空间包含关系判断和文本相似性计算;
所述发布服务器基于所述空间包含关系判断和所述文本相似性计算结果,判断所述地理文本流数据是否命中至少一个所述订阅服务器;
若是,则由所述发布服务器把所述地理文本流数据转发到命中的订阅服务器上。


2.如权利要求1所述的分布式订阅发布模式下的空间范围-关键字查询方法,其特征在于,在所述发布服务器接收地理文本流数据之前,还包括:
把整个二维空间划分为多个等大小区域的集合ε,并对ε中的每个区域分配一个唯一的标记ID,一个区域的标记信息定义为r.ID,所述订阅服务器上的每个空间范围-关键字查询的空间范围为ε的子集合,该子集合表示为△,子集合∆由至少一个区域组成;
在所述订阅服务器上初始化一个布谷鸟哈希表;
遍历空间范围-关键字查询的每个区域,计算区域r.ID的指纹finger(r.ID),并基于第一预设公式计算所述区域r.ID在所述布谷鸟哈希表中对应的两个桶值,其中,所述第一预设公式包括:h1=hash(r.ID),h2=h1hash(finger(r.ID)),其中,是异或运算符号,h1与h2的计算结果为所述区域r.ID在所述布谷鸟哈希表中对应的两个桶值;
分别判断空间范围-关键字查询中的所述区域r.ID在所述布谷鸟哈希表中对应的两个桶中是否有空闲位置,其中,所述两个桶表示为bucket[h1]和bucket[h2];
若是,则将空间范围-关键字查询中的所述区域r.ID的指纹插入到所述空闲位置中;
若否,则使用空间范围-关键字查询中的所述区域r.ID的指纹替换掉bucket[h1]或bucket[h2]的一个指纹;
得到最终的哈希表,所述最终的哈希表作为所述订阅服务器的所述空间签名。


3.如权利要求1所述的分布式订阅发布模式下的空间范围-关键字查询方法,其特征在于,在所述发布服务器接收地理文本流数据之前,还包括:
在所述订阅服务器上利用所述单排序最小哈希算法生成订阅关键字集合的签名,得到所述订阅服务器中四叉树所有叶子结点的关键字的签名,并把所述所有叶子结点的关键字的签名汇总到签名集合中;
当所有叶子节点所对应的文本签名组大于预设阈值时,把拥有同一个父节点的四个子节点的文本签名合并为一个新的文本签名,汇聚成新的签名集合,直到签名集合中签名的个数小于或等于所述预设阈值,并将此时的签名集合作为所述文本签名组。


4.如权利要求3所述的分布式订阅发布模式下的空间范围-关键字查询方法,其特征在于,所述在所述订阅服务器上利用单排序最小哈希算法生成订阅关键字集合的签名包括:
将所述订阅关键字集合进行哈希运算,得到由0和1组成的字符串;
将所述字符串进行分组,得到多个字符串组;
获取每个所述字符串组中第一个非零值所处的位置;
将每个所述字符串组中第一个非零值所处的位置所组成的集合作为所述订阅关键字集合的签名。


...

【专利技术属性】
技术研发人员:邓泽王力哲王月刘韬陈小岛陈云亮
申请(专利权)人:中国地质大学武汉
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1