【本科毕设】pub/sub框架

1. 背景

本文中研究的问题为位置感知的发布/订阅框架设计与实现。订阅者以订阅(subscription)的形式向发布/订阅系统注册,表达对特定事件的兴趣;发布者发布消息到发布/订阅系统;发布/订阅系统充当订阅者和发布者的中介,负责订阅的管理,并以通知的形式发送消息到感兴趣的订阅者。

与传统的基于文本的发布订阅问题不同,在我们所研究的问题中,发布者发布的消息和订阅者的订阅都是同时包含了空间位置和文本描述两种信息。

​ 订阅者对于空间位置和文本描述的相似性有着不同的偏好,比如一些订阅者更希望得到与自己的订阅文本相似程度更高的消息,而另一些订阅者则更关注获得的消息与自己所在的空间位置的相近程度,因此我们允许用户进行参数化订阅,研究基于参数化的空间文本订阅的位置感知发布/订阅框架,力求实现高效、有针对性的发布/订阅过程。

2. 前缀过滤技术

​ 文本过滤即为利用数据的文本信息进行剪枝。旨在通过执行较快捷的基于文本的算法来减少记录点之间文本相似度的直接计算,从而提高计算效率。常用的文本过滤有长度过滤,前缀过滤,索引前缀过滤,位置过滤和后缀过滤五种过滤机,我们采用其中的前缀过滤机制,结合空间文本订阅的文本信息对不符合条件的订阅进行剪枝。

​ 前缀过滤技术中,我们需要结合倒排文件列表构建前缀索引,前缀索引即根据计算出的前缀长度,只在倒排文件中存储前缀词。当且仅当两个记录点的文件中前缀有一个以上相同时,两个记录点才有可能成为匹配对

3. 方案

3.1 baseline

通过计算订阅和消息的相似度,如果超过阈值则可以推送。

问题:计算量大,效率低。

3.2 空间感知前缀

根据阈值和文本权重,可以计算出每个subscription的前缀长度,因此倒排索引简化为只对前缀词做倒排

根据每个subscription中所有词的权重,可以估算出其文本相似度下界,从而可以得到空间相似度下界。

接下来利用过滤-验证机制,对m中的关键词访问倒排表,找到包含关键词的subscription,计算这些subscription和m的距离,根据之前存储的空间相似度下界进行过滤,得到候选集。最后再用相似度公式验证得到最终结果。

3.3 区域感知前缀

利用R树对subscriptions做空间索引,在R树的节点中存储倒排索引,空间相似度下界等,当消息过来时,可以一次性过滤掉不符合条件的整个区域。

3. 4 进一步优化

对消息流按时间段进行R树空间索引,匹配消息和订阅两个R树,进行过滤