CN112507689B - 分布式订阅发布模式下的空间范围-关键字查询方法 - Google Patents
分布式订阅发布模式下的空间范围-关键字查询方法 Download PDFInfo
- Publication number
- CN112507689B CN112507689B CN202110078248.XA CN202110078248A CN112507689B CN 112507689 B CN112507689 B CN 112507689B CN 202110078248 A CN202110078248 A CN 202110078248A CN 112507689 B CN112507689 B CN 112507689B
- Authority
- CN
- China
- Prior art keywords
- signature
- text
- spatial
- subscription
- server
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 241000544061 Cuculus canorus Species 0.000 claims abstract description 36
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 24
- 238000004364 calculation method Methods 0.000 claims abstract description 20
- 238000005516 engineering process Methods 0.000 claims abstract description 4
- 238000004590 computer program Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 abstract description 16
- 230000008569 process Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 235000013305 food Nutrition 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/194—Calculation of difference between files
-
- 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/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/322—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/325—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Remote Sensing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种分布式订阅发布模式下的空间范围‑关键字查询方法,包括:发布服务器接收地理文本流数据,其中,发布服务器上部署有每个订阅服务器的空间签名和文本签名组,空间签名针对空间范围‑关键字查询的空间范围部分采用空间布谷鸟过滤器技术生成,文本签名组针对空间范围‑关键字查询的关键字集合部分采用单排序最小哈希算法和倒排文件四叉树方法生成;发布服务器遍历每个空间签名和每个文本签名组,与地理文本流数据进行空间包含关系判断和文本相似性计算,基于前述判断和计算结果判断地理文本流数据是否命中订阅服务器;若是,则把地理文本流数据转发到命中的订阅服务器上。本发明可大大降低发布服务器和订阅服务器之间的高通信开销。
Description
技术领域
本发明涉及信息查询技术领域,具体涉及一种分布式订阅发布模式下的空间范围-关键字查询方法。
背景技术
由于装有GPS的移动设备的数量激增,包含文本信息和地理位置信息的海量地理文本数据正在以前所未有的速度生成。这些地理文本数据以流的方式生成,包含对用户有价值的信息。当用户关注特定地区的事件,例如所在城市的美食,他们希望收到在给定空间范围中与此类事件相关的最新地理文本数据。每个用户选择自己的兴趣(如最喜欢的食物或运动)和位置范围,作为一个空间范围-关键字订阅。根据空间范围-关键字订阅,发布者(如本地企业)持续生成的地理文本消息流(如电子优惠券促销和带有位置信息的tweet集)将迅速反馈给相关用户。目前,由于单机的计算资源有限,一般采用分布式发布/订阅模式,即多个发布服务器将发布数据转发到对应的多个订阅服务器中,但大量的发布流数据需要从发布服务器转发到对应空间范围关键字的订阅服务器上,由此存在大量数据转发,从而导致通讯开销极高。
发明内容
本发明解决的问题是现有技术中分布式订阅/发布模式下的空间范围-关键字查询通信开销大。
为解决上述问题,本发明提供一种分布式订阅发布模式下的空间范围-关键字查询方法,包括:
发布服务器接收地理文本流数据,其中,所述发布服务器上部署有每个订阅服务器的空间签名和文本签名组,其中,所述空间签名针对空间范围-关键字查询的空间范围部分采用空间布谷鸟过滤器技术生成,所述文本签名组针对空间范围-关键字查询的关键字集部分采用单排序最小哈希算法和倒排文件四叉树方法生成;且每个订阅服务器生成的空间签名和文本签名组空间开销都很小,空间签名的空间开销小于等于标准的布隆过滤器。文本开销为:8bytes,其中/>表示位置值数目(默认值2500),/>也表示第三预设公式字符串分组个数。
所述发布服务器遍历每个空间签名和每个文本签名组,与所述地理文本流数据进行空间包含关系判断和文本相似性计算;
所述发布服务器基于所述空间包含关系判断和所述文本相似性计算结果,判断所述地理文本流数据是否命中至少一个所述订阅服务器;
若是,则由所述发布服务器把所述地理文本流数据转发到命中的订阅服务器上。
可选地,在所述发布服务器接收地理文本流数据之前还包括:
把整个二维空间划分为多个等大小区域的集合ε,并对ε中的每个区域r分配一个唯一的ID,用于标记该区域。这些区域的尺寸可以设置为任意小的尺寸,那么对于所述订阅服务器上的每个空间范围-关键字查询的空间范围可以表示为ε的子集合,该子集合表示为△。其中,子集合∆由至少一个区域组成,子集合∆中的每个区域r都与查询的空间范围重叠。空间布谷鸟过滤器(即布谷鸟哈希表HT)可以存储每个区域r的标记ID信息。
在所述订阅服务器上初始化一个布谷鸟哈希表。
遍历每个空间范围-关键字查询的区域r,计算区域r.ID的指纹finger(r.ID),h1=hash(r.ID),h2=h1 hash(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为分布式订阅发布系统下发布与订阅通信示意图;
图2本发明分布式订阅发布模式下的空间关键字查询方法一实施例流程示意图;
图3为本发明分布式订阅发布模式下的空间关键字查询方法一实施例示意图;
图4为本发明分布式订阅发布模式下的空间关键字查询方法另一实施例流程示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
如图1为分布式订阅发布系统下发布与订阅通信示意图,流数据由多个发布服务器转发到对应的多个订阅服务器中,当流数据量比较大,发布服务器和/或订阅服务器数量较多时,存在大量数据转发,导致通讯开销极高。
上述方法中,为了降低订阅服务器和发布服务器之间的通信开销,可采用基于哈希、基于位置、基于关键字和基于前缀这四种方式来转发,然而这四种转发方式应用到空间范围-关键字查询时依然有高通讯开销的问题。其中,基于哈希的转发是一种随机转发方式,通信开销只是平均到各个订阅服务器中,但实际上仍然没有得到降低;基于位置的转发是把所有的订阅按照空间大致的分成几部分,分给各个订阅服务器,每个订阅服务器只接收位置上满足条件的发布数据,由于该方式主要采用基于KD树结构进行的空间划分,每个订阅服务器负责一个KD树叶子节点的空间范围,但KD树叶子节点中存在“死空间”问题(即叶子节点的区域中存在没有包含任意一个空间数据的空间),在转发时虽然发布数据和该订阅服务器负责区域有重叠部分,然而实际上是落在“死空间”中,导致没有必要的转发;基于关键字方式是把所有订阅的关键字平均分配到各个订阅服务器,与订阅服务器关键字集有重叠的发布进行转发,但当一个发布关键字虽然与订阅服务器的文本关键字集有重叠,实际上不能匹配任何一个订阅,这种方式会造成误判,从而通信开销仍然很大;基于前缀方式同上。上述四种方式如果应用于空间范围-关键字查询同样也只是粗粒度的没有基于订阅实际内容的方式,把发布数据转发到订阅服务器,通讯开销仍然很大。
本发明提出一种分布式订阅发布模式下的空间范围-关键字查询方法。
图2为本发明分布式订阅发布模式下的空间范围-关键字查询方法一实施例的流程示意图。参照图2和图3,所述分布式订阅发布模式下的空间范围-关键字查询方法包括:
步骤S100,发布服务器接收地理文本流数据,其中,所述发布服务器上部署有每个订阅服务器的空间签名和文本签名组,其中,所述空间签名针对空间范围-关键字查询的空间范围部分采用基于空间布谷鸟过滤器技术生成,所述文本签名组针对空间范围-关键字查询的关键字集部分采用单排序最小哈希算法和倒排文件四叉树方法生成。
地理文本流数据的产生终端,可以为商家终端,例如,商家通过自己的终端上传自家的产品信息和地理位置信息,可参考商家通过外卖软件上传产品信息和地理位置信息,当然此处的商家泛指有实体店面或实体场所的主体,如旅游区、图书馆、书店、饭馆、商场、游乐园等。此外,地理文本流数据在产生后,可存储于预设的数据库。
发布服务器可直接从地理文本流数据的产生终端获取地理文本流数据,以及时获取最新上传的地理文本流数据,并实时发布最新的地理文本流数据,保证订阅推送的实时性。发布服务器也可从预设的数据库中获取地理文本流数据,当预设的数据库中有数据更新时,及时获取更新数据并进行实时发布,保证订阅推送的实时性。
分布式订阅发布模式下,有多个发布服务器和多个订阅服务器,对于单个发布服务器而言,其执行的操作是一致的,因而本发明实施例以一个发布服务器为例,解释其执行的操作,本领域技术人员知晓的是,一个发布服务器所执行的操作可推广及所有发布服务器。不同发布服务器可具有不同的数据源,从不同的数据源中获取地理文本流数据。
每个发布服务器上均部署有所有订阅服务器的空间签名和文本签名组,用于在发布服务器上确定地理文本流数据应转发的订阅服务器,以减小数据转发的通信开销。
空间布谷鸟过滤器(Spacial Cuckoo filter,简称SCF)是一种有效的压缩集合和查询集合成员的签名方法,能够支持删除操作和动态更新查询操作,采用空间布谷鸟过滤器只需要小于等于标准的布隆过滤器的时间和空间开销,在保证动态更新查询数据的情况下有效的降低了时间和空间上的开销。
单排序最小哈希算法(one-permutation min-wise hashing),可以用来快速估算两个集合的相似度。采用最小哈希算法能够将文件的原始内容(本发明实施例中指关键字)均匀随机地映射为一个最小哈希签名。本发明实施例中使用的单排序最小哈希算法,仅进行一次随机排序,这减少了数据预处理时间。
每个订阅服务器的空间签名和文本签名组由每个订阅服务器自行生成,并部署到每个发布服务器上,在接收到新的空间范围-关键字查询订阅时,基于新的空间范围-关键字查询订阅,更新空间签名和文本签名组,并将更新后的空间签名和文本签名组部署到每个发布服务器上,覆盖原来的空间签名和文本签名组。
步骤S200,发布服务器遍历每个空间签名和每个文本签名组,与所述地理文本流数据进行空间包含关系判断和文本相似性计算。
发布服务器遍历所有订阅服务器的空间签名和文本签名组,一一与地理文本流数据进行空间包含关系判断和文本相似性计算,具体地,将地理文本流数据所对应的区域与空间签名对应的布谷鸟哈希表进行对比,判断地理文本流数据所对应的区域是否落入到空间签名对应的布谷鸟哈希表中的某个桶中,若是,则说明地理文本流数据是位于该空间签名的空间范围内的,空间包含关系满足命中要求。将地理文本流数据中的文本信息与文本签名组包含的文本进行对比,计算文本相似度,具体可以字符串相似度表示该文本相似度,也可以语义相似度表示该文本相似度,当文本相似度大于一定阈值时,文本相似度满足命中要求。
步骤S300,基于所述空间包含关系判断和所述文本相似性计算结果,判断所述地理文本流数据是否命中至少一个订阅服务器。
步骤S400,若是,则把所述地理文本流数据转发到命中的订阅服务器上。
当地理文本流数据与一个订阅服务器的空间包含关系判断和文本相似性均满足命中要求时,说明该地理文本流数据命中了该订阅服务器。地理文本流数据可能命中一个或多个订阅服务器。
地理文本流数据也可能命中0个订阅服务器,即未命中任一订阅服务器,当地理文本流数据与一个订阅服务器的空间包含关系判断不满足命中要求,或者文本相似性不满足命中要求时,说明该地理文本流数据未命中该订阅服务器。当地理文本流数据未命中任一订阅服务器时,发布服务器可将其删除或存储,不进行发布。
参考图3,发布服务器接收地理文本流数据后,从地理文本流数据中获取其流数据dt1和流数据dt2,将流数据dt1、dt2与发布服务器(即发布节点)上部署的多个空间签名进行空间包含关系判断,若满足空间包含关系再将流数据dt1、dt2与发布服务器上部署的多个文本签名组进行文本相似性计算,基于空间包含关系判断和文本相似性计算结果,确定地理文本流数据是否命中订阅服务器。其中,订阅服务器在其存储的空间范围-关键字查询q1、q2...qn的基础上,利用空间布谷鸟过滤器SCF生成空间签名,利用单排序最小哈希算法(one-permutation min-wise hashing)结合倒排文件四叉树,生成文本签名组,并由订阅服务器将空间签名和文本签名组部署到发布服务器,以供发布服务器进行上述的空间包含关系判断和文本相似性计算。
通过在地理文本流数据从发布服务器转发到订阅服务器过程中,先由发布服务器根据<空间签名,文本签名组>信息过滤掉大量不相关的地理文本流数据,而只把与订阅相关的地理文本流数据转发到对应的订阅服务器中,从而大大降低发布服务器和订阅服务器之间的通信开销和时间开销。
可选地,步骤S100之前还包括空间签名在订阅服务器上的生成过程:
把整个二维空间划分为多个等大小区域的集合ε,并对ε中的每个区域r分配一个唯一的ID,用于标记该区域,一个区域的标记信息定义为r.ID。这些区域的尺寸可以设置为任意小的尺寸,那么对于所述订阅服务器上的每个空间范围-关键字查询的空间范围可以表示为ε的子集合,该子集合表示为△。其中,子集合∆中的每个区域r都与查询的空间范围重叠,子集合∆由至少一个区域组成。空间布谷鸟过滤器(即布谷鸟哈希表HT)可以存储每个区域r的标记信息。
在所述订阅服务器上初始化一个布谷鸟哈希表。
遍历所述订阅服务器上的空间范围-关键字查询的每个区域r,计算区域r.ID的指纹finger(r.ID),h1=hash(r.ID),h2=h1 hash(finger(r.ID)),/>是异或运算符号,h1与h2的计算结果分别对应HT中两个桶值i和j。在将finger(r.ID)插入布谷鸟哈希表之前,在所述布谷鸟哈希表中,分别判断区域r.ID对应的两个桶bucket[h1]和bucket[h2]中是否有空闲位置,若有,则空闲位置即为适合插入的位置,将相应的区域r.ID的指纹插入到所述空闲位置中,若无,则从两个桶中任选一个桶,将其中原有的一个指纹数据踢出,将相应区域r.ID的指纹替换掉该被踢出指纹数据,被踢出的数据去布谷鸟哈希表的其他地方找寻自己的位置,通过不断踢出数据,使得最后所有区域在布谷鸟哈希表中找到自己的位置。其中,使用相应的区域r.ID的指纹替换掉其对应的两个桶中任一个桶中的一个指纹,具体包括:从编号为i和j的桶中取一个桶给k,把f与k中任意一个指纹进行交换,l=k/>hash(f),把f插入到l对应的桶中,其中,k为临时变量,用于存储从i和j中随机挑选的一个位置的下标值。
由上述步骤,最后所有空间范围-关键字查询的区域在哈希表中找到自己的位置,得到最终的哈希表,所述最终的哈希表作为所述订阅服务器的所述空间签名。
当所述订阅服务器接收到新输入的空间范围-关键字查询订阅q时,获取该空间范围-关键字查询订阅q的空间范围,更新哈希表,将更新后的哈希表部署到发布服务器上覆盖原来的空间签名。以使发布服务器获得订阅服务器最新的空间签名,对地理文本流数据进行精准转发。
采用空间布谷鸟过滤器生成空间签名,只需要小于等于标准的布隆过滤器的时间和空间开销,在保证动态更新查询数据的情况下有效的降低了时间和空间上的开销。
步骤S200包括:在所述布谷鸟哈希表中查找所述地理文本流数据的地理位置所在区域的指纹是否存在。具体而言:
获取所述地理文本流数据的地理位置所在区域rt,rt∈ε,计算所述区域rt的指纹f(rt.ID)。
基于第二预设公式计算所述地理文本流数据的地理位置所在区域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表示rt在所述空间签名的布谷鸟哈希表中对应的两个桶值。
判断所述空间签名的布谷鸟哈希表中的i桶或j桶中是否包含指纹f(rt.ID),即HT.bucket[i] has f(rt.ID) or HT.bucket[j] has f(rt.ID),其中,HT表示空间签名的布谷鸟哈希表,HT.bucket[i] 表示HT中对应编号i的桶,HT.bucket[j]表示HT中对应编号j的桶。
若是,则判定所述地理文本流数据的地理位置所在区域rt包含于所述空间签名。
若否,则判定地理文本流数据的地理位置所在区域rt不包含于所述空间签名中,该地理文本流数据未命中所述空间签名对应的订阅服务器。
可选地,步骤S100之前还包括文本签名组在订阅服务器上的生成过程:
在所述订阅服务器上利用单排序最小哈希算法生成订阅关键字集合的签名,得到所述订阅服务器中四叉树所有叶子结点的关键字的签名,并把所述所有叶子结点的关键字的签名汇总到签名集合中。其中,所述在所述订阅服务器上利用单排序最小哈希算法生成订阅关键字集合的签名具体包括:将所述订阅关键字集合进行哈希运算,得到由0和1组成的字符串;将所述字符串进行分组,得到多个字符串组,例如,关键字全集为:
{k1,k2,k3,k4,k5,k6,k7,k8,k9,k10,k11,k12,k13,k14,k15,k16,k17,k18,k19,k20},通过一次排序得到的新顺序为:
{k1,k3,k6,k19,k20,k18,k4,k2,k7,k8,k11,k12,k13,k5,k9,k14,k10,k15,k17,k16},假设订阅关键字集合转换后的字符串为01010011001111001010,以4个为一组,可分为0101 0011 0011 1100 1010等5个字符串组;获取每个所述字符串组中第一个非零值所处的位置,对于前述示例中的5个字符串组,其第一个非零值所处的位置分别为2、3、3、1、1;将每个所述字符串组中第一个非零值所处的位置所组成的集合作为所述订阅关键字集合的签名,即将{2、3、3、1、1}这一集合作为订阅关键字集合的签名。
当所有叶子节点所对应的文本签名组大于预设阈值时,自底向上合并签名,把拥有同一个父节点的四个子节点的文本签名合并为一个新的文本签名,汇聚成新的签名集合,直到签名集合中签名的个数小于或等于预设阈值,将此时的签名集合作为所述文本签名组。
采用单排序最小哈希算法(one-permutation min-wise hashing)结合倒排文件四叉树的新颖的方法,先基于倒排文件四叉树对订阅负载做一个层次化索引,基于索引自下而上根据阈值对关键字产生一组文本签名;传统的多次排序最小哈希算法(-permutation min-wise hashing)由于进行多次重复排序,需要花费大量的时间进行数据预处理,而本发明所提出的单排序最小哈希算法只需要随机挑选1次排序减少了预处理时间,同时文本签名个数保证在预定义的阈值范围内,从而有效的减少了传输开销和存储开销。
可选地,当所述订阅服务器接收到新输入的空间范围-关键字查询订阅q时,更新带有倒排文件的四叉树索引;基于更新后的倒排文件四叉树索引,更新所述签名集合;更新后的所述签名集合为最新的所述文本签名组,将最新的所述文本签名组部署到所述发布服务器上。以使发布服务器获得订阅服务器最新的文本签名组,对地理文本流数据进行精准转发。
步骤S200包括:基于所述单排序最小哈希算法生成所述地理文本流数据的关键字集合对应的最小哈希签名。其中,地理文本流数据的文本信息是由多个关键字组成关键字集合。生成地理文本流数据的关键字集合对应的最小哈希签名,具体包括:将地理文本流数据的关键字集合,通过哈希函数运行哈希运算,得到包含0和1的字符串;将该字符串划分分组;取每个组中第一个非零值所对应的位置;各个组的第一个非零值所对应的位置组成的集合作为最小哈希签名集合。
基于第三预设公式计算所述最小哈希签名与所述文本签名组的相似度,其中,所述第三预设公式为:
,
其中,表示所述地理文本流数据的关键字集合,/>表示订阅关键字集合,表示地理文本流数据的关键字集合第/>个组的第一个非零值,即地理文本流数据的关键字集合第/>个组的最小哈希值,/>表示订阅关键字集合第/>个组的第一个非零值,即订阅关键字集合第/>个组的最小哈希值。/>表示所述最小哈希签名与所述文本签名组的相似度,/>指分组个数,/>表示第/>个组。
在第二预设公式的分子中,首先将集合/>的第/>个组的最小哈希值与集合/>的第/>个组的最小哈希值进行对比,判断二者是否一样,若一样,则该组的比较结果为1,若不一样,则该组的比较结果为0,最后得到所有组的比较结果,将所有组的比较结果相加,即得到第二预设公式/>的分子/>的值。
通过单排序最小哈希算法生成地理文本流数据的关键字集合对应的最小哈希签名,与基于单排序最小哈希算法生成的文本签名组,基于上述第二预设公式进行相似度计算,可降低在分布式订阅发布模式下,地理文本流数据发布的时间开销和空间开销,降低预处理成本。因传统的多排序算法,当关键字集合数目很大时,排序多次会造成处理成本较大。
步骤S300包括:当所述地理文本流数据的地理位置所在区域的指纹包含于所述空间签名,且地理文本流数据的关键字集合对应的最小哈希签名与所述文本签名组的相似度大于或等于预设相似度阈值,则所述地理文本流数据命中所述空间签名和所述文本签名组对应的订阅服务器,即命中至少一个订阅服务器,其中,预设相似度阈值为。
为便于理解,给出一实施例,参考图4,本发明实施例的分布式订阅发布模式下的空间范围-关键字查询方法包括:
(1)输入空间范围关键字查询订阅q;
(2)转发q到与其有空间重合的一个或多个订阅服务器,更新这些订阅服务器上的倒排文件四叉树索引;
(3)每个订阅服务器根据查询q的空间信息和文本信息产生空间签名和文本签名组,部署到发布节点上;
(4)输入地理文本流数据dt;
(5)发布服务器接收流数据dt,遍历每个空间签名和文本签名组,与流数据dt进行空间包含关系判断和文本相似性计算;
(6)流数据dt是否命中某个订阅服务器;
(7)若是,则把流数据dt转发到命中的订阅服务器上;若没有命中订阅服务器,则继续接收流数据dt并进行判断。
本发明实施例提出一种基于空间签名SCF和文本签名one-permutation min-wisehashing的混合过滤机制的高效减少通讯开销的方法,通过分布式系统并行处理数据发布任务,且在发布服务器上部署各订阅服务器的基于空间布谷鸟过滤器和单排序最小哈希算法结合倒排文件四叉树方法的混合过滤机制,以在发布服务器上过滤掉大量不相关的地理文本流数据,而只把与订阅相关的流数据转发到对应的订阅服务器中,减少了计算量,也大大降低发布服务器和订阅服务器之间的通信开销。
本发明还提供一种空间范围-关键字查询装置。所述空间范围-关键字查询装置包括存储有计算机程序的计算机可读存储介质和处理器,所述计算机程序被所述处理器读取并运行时,实现如上所述的分布式订阅发布模式下的空间关键字查询方法。
本发明空间范围-关键字查询装置相对于现有技术所具有的有益效果与上述分布式订阅发布模式下的空间范围-关键字查询方法一致,此处不赘述。本发明还提供一种计算机可读存储介质,所述计算机可读存储介质包括:所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器读取并运行时,实现如上所述的分布式订阅发布模式下的空间范围-关键字查询方法。
本发明计算机可读存储介质相对于现有技术所具有的有益效果与上述分布式订阅发布模式下的空间范围-关键字查询方法一致,此处不赘述。
虽然本发明公开披露如上,但本发明公开的保护范围并非仅限于此。本领域技术人员在不脱离本公开的精神和范围的前提下,可进行各种变更与修改,这些变更与修改均将落入本发明的保护范围。
Claims (8)
1.一种分布式订阅发布模式下的空间范围-关键字查询方法,其特征在于,包括:
发布服务器接收地理文本流数据,其中,所述发布服务器上部署有每个订阅服务器的空间签名和文本签名组,其中,所述空间签名针对空间范围-关键字查询的空间范围部分采用空间布谷鸟过滤器技术生成,所述文本签名组针对空间范围-关键字查询的关键字集合部分采用单排序最小哈希算法和倒排文件四叉树方法生成;
所述发布服务器遍历每个所述空间签名和每个所述文本签名组,与所述地理文本流数据进行空间包含关系判断和文本相似性计算;
所述发布服务器基于所述空间包含关系判断和所述文本相似性计算结果,判断所述地理文本流数据是否命中至少一个所述订阅服务器;
若是,则由所述发布服务器把所述地理文本流数据转发到命中的订阅服务器上;
在所述发布服务器接收地理文本流数据之前,还包括:
把整个二维空间划分为多个等大小区域的集合ε,并对ε中的每个区域分配一个唯一的标记ID,一个区域的标记信息定义为r.ID,所述订阅服务器上的每个空间范围-关键字查询的空间范围为ε的子集合,该子集合表示为△,子集合Δ由至少一个区域组成;
在所述订阅服务器上初始化一个布谷鸟哈希表;
遍历空间范围-关键字查询的每个区域,计算区域r.ID的指纹finger(r.ID),并基于第一预设公式计算所述区域r.ID在所述布谷鸟哈希表中对应的两个桶值,其中,所述第一预设公式包括:h1=hash(r.ID),其中,/>是异或运算符号,h1与h2的计算结果为所述区域r.ID在所述布谷鸟哈希表中对应的两个桶值;
分别判断空间范围-关键字查询中的所述区域r.ID在所述布谷鸟哈希表中对应的两个桶中是否有空闲位置,其中,所述两个桶表示为bucket[h1]和bucket[h2];
若是,则将空间范围-关键字查询中的所述区域r.ID的指纹插入到所述空闲位置中;
若否,则使用空间范围-关键字查询中的所述区域r.ID的指纹替换掉bucket[h1]或bucket[h2]的一个指纹;
得到最终的哈希表,所述最终的哈希表作为所述订阅服务器的所述空间签名;
在所述发布服务器接收地理文本流数据之前,还包括:
在所述订阅服务器上利用所述单排序最小哈希算法生成订阅关键字集合的签名,得到所述订阅服务器中四叉树所有叶子结点的关键字的签名,并把所述所有叶子结点的关键字的签名汇总到签名集合中;
当所有叶子节点所对应的文本签名组大于预设阈值时,把拥有同一个父节点的四个子节点的文本签名合并为一个新的文本签名,汇聚成新的签名集合,直到签名集合中签名的个数小于或等于所述预设阈值,并将此时的签名集合作为所述文本签名组。
2.如权利要求1所述的分布式订阅发布模式下的空间范围-关键字查询方法,其特征在于,所述在所述订阅服务器上利用单排序最小哈希算法生成订阅关键字集合的签名包括:
将所述订阅关键字集合进行哈希运算,得到由0和1组成的字符串;
将所述字符串进行分组,得到多个字符串组;
获取每个所述字符串组中第一个非零值所处的位置;
将每个所述字符串组中第一个非零值所处的位置所组成的集合作为所述订阅关键字集合的签名。
3.如权利要求1所述的分布式订阅发布模式下的空间范围-关键字查询方法,其特征在于,所述发布服务器遍历每个所述空间签名和每个所述文本签名组,与所述地理文本流数据进行空间包含关系判断和文本相似性计算包括:
获取所述地理文本流数据的地理位置所在区域rt,rt∈ε,计算所述区域rt的指纹f(rt.ID);
基于第二预设公式计算所述地理文本流数据的地理位置所在区域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表示rt在所述空间签名的布谷鸟哈希表中对应的两个桶值;
判断所述空间签名的布谷鸟哈希表中的i桶或j桶中是否包含指纹f(rt.ID);
若是,则判定所述地理文本流数据的地理位置所在区域rt包含于所述空间签名。
4.如权利要求1或2所述的分布式订阅发布模式下的空间范围-关键字查询方法,其特征在于,所述发布服务器遍历每个所述空间签名和每个所述文本签名组,与所述地理文本流数据进行空间包含关系判断和文本相似性计算包括:
基于所述单排序最小哈希算法生成所述地理文本流数据的关键字集合对应的最小哈希签名;
基于第三预设公式计算所述最小哈希签名与所述文本签名组的相似度,其中,所述第三预设公式为:
其中,A表示所述地理文本流数据的关键字集合,B表示所述订阅关键字集合,min{πi(A)}表示所述地理文本流数据的关键字集合第i个字符串组的最小哈希值,min{πi(B)}表示所述订阅关键字集合第i个字符串组的最小哈希值,ρ(A,B)表示所述最小哈希签名与所述文本签名组的相似度,l表示字符串分组个数,i表示第i个字符串组。
5.如权利要求4所述的分布式订阅发布模式下的空间范围-关键字查询方法,其特征在于,所述基于所述空间包含关系判断和所述文本相似性计算结果,判断所述地理文本流数据是否命中至少一个订阅服务器包括:
若所述地理文本流数据的地理位置所在区域的指纹包含于所述空间签名,且所述最小哈希签名与所述文本签名组的相似度大于或等于预设相似度阈值,则所述地理文本流数据命中至少一个订阅服务器,其中,所述预设相似度阈值为:
6.如权利要求1至3、5中任一项所述的分布式订阅发布模式下的空间范围-关键字查询方法,其特征在于,还包括:
由所述订阅服务器将所述空间签名和所述文本签名组部署到所述发布服务器上。
7.如权利要求6所述的分布式订阅发布模式下的空间范围-关键字查询方法,其特征在于,在所述由所述订阅服务器将所述空间签名和所述文本签名组部署到所述发布服务器上之后,还包括:
当所述订阅服务器接收到新输入的空间范围-关键字查询订阅时,更新带有倒排文件的四叉树索引;
基于更新后的倒排文件四叉树索引,更新签名集合;
将更新后的签名集合作为最新的文本签名组,将所述最新的文本签名组部署到所述发布服务器上。
8.一种空间范围-关键字查询装置,其特征在于,包括存储有计算机程序的计算机可读存储介质和处理器,所述计算机程序被所述处理器读取并运行时,实现如权利要求1-7任一项所述的分布式订阅发布模式下的空间范围-关键字查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110078248.XA CN112507689B (zh) | 2021-01-20 | 2021-01-20 | 分布式订阅发布模式下的空间范围-关键字查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110078248.XA CN112507689B (zh) | 2021-01-20 | 2021-01-20 | 分布式订阅发布模式下的空间范围-关键字查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112507689A CN112507689A (zh) | 2021-03-16 |
CN112507689B true CN112507689B (zh) | 2023-08-01 |
Family
ID=74952349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110078248.XA Active CN112507689B (zh) | 2021-01-20 | 2021-01-20 | 分布式订阅发布模式下的空间范围-关键字查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112507689B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118228319A (zh) * | 2024-05-24 | 2024-06-21 | 北京大学 | 一种数据分享方法、系统、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104376112A (zh) * | 2014-11-27 | 2015-02-25 | 苏州大学 | 一种路网上空间关键字检索的方法 |
CN108197138A (zh) * | 2017-11-21 | 2018-06-22 | 北京邮电大学 | 在发布/订阅系统中发布信息匹配订阅信息的方法及系统 |
CN109815234A (zh) * | 2018-12-29 | 2019-05-28 | 杭州中科先进技术研究院有限公司 | 一种流式计算模型下的多重布谷鸟过滤器 |
-
2021
- 2021-01-20 CN CN202110078248.XA patent/CN112507689B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104376112A (zh) * | 2014-11-27 | 2015-02-25 | 苏州大学 | 一种路网上空间关键字检索的方法 |
CN108197138A (zh) * | 2017-11-21 | 2018-06-22 | 北京邮电大学 | 在发布/订阅系统中发布信息匹配订阅信息的方法及系统 |
CN109815234A (zh) * | 2018-12-29 | 2019-05-28 | 杭州中科先进技术研究院有限公司 | 一种流式计算模型下的多重布谷鸟过滤器 |
Non-Patent Citations (4)
Title |
---|
《MoDisSENSE: A Distributed Spatio-Temporal and Textual Processing Platform for Social Networking Services》;Loannis Mytilinis等;《https://www.researchgate.net/publication/280529157 》;全文 * |
XML发布/订阅数据流系统基于共享的多查询连接算法;李永锋;潘懋;;计算机应用(第12期);全文 * |
基于B+树的发布/订阅并行匹配算法;丁建立;罗云生;王家亮;郑峰弓;李永华;;计算机工程与设计(第01期);全文 * |
基于元数据的空间数据网络分发系统研究;余旭;;地域研究与开发(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112507689A (zh) | 2021-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180276250A1 (en) | Distributed Image Search | |
US7779006B2 (en) | Peer-to-peer file sharing | |
US11010429B2 (en) | Dynamic social network relationship determination method and apparatus | |
US8117215B2 (en) | Distributing content indices | |
US9165068B2 (en) | Techniques for cloud-based similarity searches | |
US7558789B2 (en) | Method for improving local descriptors in peer-to-peer file sharing | |
CN107145545B (zh) | 一种基于位置的社交网络中Top-k区域用户文本数据推荐方法 | |
Dhulavvagol et al. | Performance analysis of distributed processing system using shard selection techniques on elasticsearch | |
US7860876B2 (en) | Peer-to-peer file sharing | |
CN112507689B (zh) | 分布式订阅发布模式下的空间范围-关键字查询方法 | |
Bender et al. | Peer-to-peer information search: Semantic, social, or spiritual? | |
CN111582967A (zh) | 内容搜索方法、装置、设备及存储介质 | |
Lu et al. | Merging retrieval results in hierarchical peer-to-peer networks | |
CN107291875B (zh) | 一种基于元数据图的元数据组织管理方法和系统 | |
CN110147424B (zh) | 一种Top-k组合空间关键字查询方法和系统 | |
Fujita | Similarity search in interplanetary file system with the aid of locality sensitive hash | |
CN109885763B (zh) | 一种基于用户头像的博文推荐方法 | |
US20070294257A1 (en) | Peer-to-peer file sharing | |
CN101196911A (zh) | 选取资源实名的方法、系统及装置 | |
US11003706B2 (en) | System and methods for determining access permissions on personalized clusters of multimedia content elements | |
Almaslukh et al. | Scalable spatio-temporal top-k community interactions query | |
Han et al. | Efficiently retrieving top-k trajectories by locations via traveling time | |
Kalakota et al. | Diversifying relevant search results from social media using community contributed images | |
Li et al. | Cyber: A community-based search engine | |
Dang et al. | A novel hash-based file clustering scheme for efficient distributing, storing, and retrieving of large scale health records |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |