2. 中山大学 数据科学与计算机学院, 广州 510006
2. School of Data and Computer Science, Sun Yat-sen University, Guangzhou 510006, China
随着基于位置服务应用的不断推广, 这些应用也同时产生了海量的空间文本数据.通常来讲, 每条空间文本数据包括一条空间坐标信息和一个文本标签集合.例如, 餐馆的经纬度和餐馆的特色标签集合; 用户的当前位置和用户兴趣标签集合等.基于这些数据, 用户可以通过空间和文本两个维度的过滤找到感兴趣的空间文本对象.本文主要研究了以下2种空间文本查询. ①布尔范围查询[1], 该查询用于找到附近以
近年来, 随着基于内存的分布式计算平台Spark[3]的流行, 有许多研究工作[4-7]基于该平台探索了海量数据场景下的分布式解决方案.相对于基于Hadoop的解决方案, 基于Spark平台的解决方案可以达到更低的延时和更高的吞吐量.例如, 最近有文献提出了基于分布式内存计算的空间数据分析系统[4].该系统相比于传统的数据库管理系统和基于Hadoop的分析系统(如Hadoop GIS[8]), 在空间数据的查询性能方面提高了5~100倍[4].考虑到上述优越的特性, 本文采用Spark作为实现平台, 并在该平台下研究如何对上述的2种空间文本查询进行高效处理.同时, 由于许多分析人员倾向于通过SQL语言去进行数据分析工作, 文章为上述查询提供了便捷的SQL接口.
另一方面, 在查询分析系统中, 索引技术有着重要的意义.普通用户的查询解集合通常只涵盖了查询数据集的一小部分, 在这样的场景下, 索引可以通过较好的剪枝能力加速查询, 从而提升整体性能.由于Spark是基于Master-Slave架构的分布式平台, 如何基于此设计面向空间文本数据的两层索引技术是一个待深入探索的问题.其中, 全局索引需要过滤掉不可能满足给定查询的数据分区; 然而由于全局索引存储于Master节点, 受限于单台节点的内存限制, 需要探索有较好空间扩展性的全局索引方法才能应对海量数据场景的挑战.除此之外, 局部索引对给定查询进行处理后, 通常将结果收集到Master节点; 由于传统的空间文本索引技术没有充分利用低频词汇的剪枝作用, 且空间开销较大, 因此, 需要设计高效的局部索引方案进行进一步的优化处理.
概括来说, 本文的主要贡献如下.
接下来, 本文将在第1节介绍问题定义、相关背景知识及先前的工作; 第2节介绍解决方案的整体框架; 第3节和第4节分别对局部索引和全局索引技术进行介绍; 第5节主要介绍提出的分布式处理算法; 第6节介绍实验结果和分析, 最后在第7节对全文进行总结.
1 问题定义及相关工作 1.1 问题定义假定
一个空间文本查询
定义1.1 假设
$ \begin{align*} \theta=\{o_i \in \mathcal{D} \ | \ dist(\rho_i, \tau) \leq \epsilon \wedge Q_t \subseteq \gamma_i\}. \end{align*} $ |
定义1.2 两个空间文本对象
$ sim_t(o_j, o_k)=\frac{|\gamma_j \cap \gamma_k|}{|\gamma_j \cup \gamma_k|}. $ |
其中,
定义1.3 给定空间文本数据集
$ \begin{align*} \theta=\{o_i \in \mathcal{D}_1, o_j \in \mathcal{D}_2 \ | \ dist(\rho_i, \rho_j) \leq \epsilon \wedge sim_t(o_i, o_j) \geq \lambda \}. \end{align*} $ |
空间文本查询.空间文本查询(如上述的布尔范围查询)近年来已经被广泛研究[9-11]. Zhou等[12]将文本搜索的研究扩展到空间数据库, 他们提出了两个混合的空间文本索引, 其将R*-tree[13]和倒排列表松散地组合, 并进一步提出了Inverted file-R*-tree结构和R*-tree-Inverted File结构. Chen等[1]提出了紧密结合空间索引和倒排文件的IR-tree结构.他们使用了一个R-Tree[14], 并将倒排列表集成到R-tree的每个节点, 对相应子树的文本内容进行索引.除了布尔范围查询外, 也有很多工作致力于研究结合了空间相似度和文本相似度的top-
空间文本相似连接.相似连接在许多领域有着广泛的应用[19-20], 文本相似连接和空间相似连接都是研究热点.文本相似连接寻找两个文本数据集中所有满足相似度大于等于给定阈值的解对, 常用的相似度量函数包括Jaccard相似度, Cosine相似度等; Sarawagi等[21]首次提出基于倒排列表支持文本相似连接, 对于每个文本对象, 将其包含的字符串映射到该对象; 在构建完该列表后, 通过扫描当前对象包含的各个字符串所映射的列表, 并累计与自身的重复元素个数来计算相似性.为了进一步减少需要扫描的字符串个数, 文献[22]进一步提出了前缀过滤技术. Bayardo等[23]进一步提出了支持Jaccard相似度和Cosine相似度的前缀过滤技术.在空间相似连接方面, 由于R-Tree索引技术在该领域的广泛应用, 常见的连接算法通常基于R-Tree实现.在文献[4]中, 作者基于Spark平台和R-Tree索引对基于距离的空间相似连接和
分布式分析系统.由于数据规模的不断增长, 分布式的计算框架现在越来越受欢迎. Apache Spark[3]是一个基于内存计算的分布式计算框架.自发布以来, 在机器学习、图处理和流数据处理方面起着重要作用.与面向磁盘和批量处理的Hadoop平台相比, Spark可以使用分布式内存缓存和计算提供低查询延迟和高吞吐量的服务. Xie等[4]基于Spark提出了基于分布式内存计算的空间数据分析系统.该系统实现了一系列面向海量空间数据的查询操作(圆形范围查询、
前缀及长度过滤技术[22].给定字符串集合
$ \begin{align*} |\gamma_j| \geq |\gamma_j \cap \gamma_k| \geq \lambda \times |\gamma_j \cup \gamma_k| \geq \lambda \times |\gamma_k|, \end{align*} $ |
同理可证
布隆过滤器技术[24].一个布隆过滤器由
$ \begin{align*} Pr_{\rm false-positive}=\Big(1-\Big(1-\frac{1}{n}\Big)^{mk} \Big)\approx(1-{\rm {e}}^{\frac{-km}{n}}). \end{align*} $ |
通过扩展Spark SQL提供的接口, 本文为2种空间文本查询提供了便捷的SQL接口.例如, 给定一个布尔范围查询, 想找到离点
SELECT * FROM t WHERE POINT(t.x, t.y) IN CIRCLERANGE(POINT(20, 2), 3) AND CONTAINS(t.s, "咖啡").
2.2 框架细节结合Spark平台Master-Slave结构的特点, 本文采用了面向空间文本查询的两层索引框架(见图 1)[4, 25].该框架利用了分阶段过滤的策略.首先, 通过全局索引过滤掉大部分不可能包含查询解集的分区; 然后, 进一步利用局部索引技术在每个候选分区上进行进一步的加速从而达到性能提升.下面对分布式索引的3个构建过程进行详细阐述:
![]() |
图 1 基于Spark的两层索引框架 Fig.1 two-level index framework based on Spark |
数据分区.分区阶段将数据拆分并映射到集群的各个节点.一般来说, 分区策略主要关注以下3个问题. ①数据局部性, 在空间上相近的数据或者文本相似度较高的数据对象应分配给同一分区; ②负载均衡, 所有分区的大小应大致相同; ③可扩展性, 分区的时间成本应该是可以接受的.在本文的问题背景下, 通过空间相似性或文本聚类分区是直观的策略.然而, 与通过空间相似性分区相比, 基于文本聚类的分区太过耗时.在实验中, 发现通过空间相似度分区的平均耗时仅为34 s, 而基于文本聚类分区的平均耗时为数个小时; 显然, 前者具有更好的可扩展性.因此, 选择了基于空间的分区策略, 称为STRPartitioner[4-5]. STRPartitioner实现了Sort-tile-recursive算法[26]的第一次迭代, 以确定分区边界, 即最小边界矩形(MBR).基于这些MBRs, 可以进一步构建一个临时的R-tree来将每个对象映射到特定的分区.给定分区数目后, Sort-tile-recursive算法会根据数据的空间相似性进行分区(数据局部性); 且通常来讲, 分区后的各个分区大小基本相近(负载均衡).因此, STRPartitioner很好地解决了上述3个问题.
局部索引构建.对于每个分区, 可以构建局部索引对查询进行加速.此外, 需要收集每个分区的空间边界信息(每个分区的MBR)和文本统计信息, 以进一步构建全局索引.它们是(id, MBR,
全局索引构建.使用在局部索引构建中收集的统计信息, 可以在主节点中进一步构建全局索引.
3 局部索引构建为了更高效地支持各个分区的查询加速, 本文采用了RI
IR-Tree[1]结构是处理布尔范围查询的经典结构. IR-Tree结构基于R-Tree进行扩展, 在R-Tree的每一层嵌入了倒排列表以对子节点的文本数据进行索引.这样, 在非叶子节点搜索时, 通过匹配当前的查询字符串在倒排列表中的映射节点可以快速找到满足文本过滤条件的子节点, 在空间过滤的同时结合了文本的剪枝作用, 极大地减小了搜索空间.然而, 对于IR-Tree有两个重要的观察. ① IR-Tree在每一层都嵌入了倒排列表结构, 因此, 每个字符串会被冗余地显式存储, 并导致巨大的空间开销; ② IR-Tree在每一层的搜索都进行了准确的匹配, 这并不是必要的.
基于这两个观察, 可以对IR-Tree进行以下优化. ①在非叶子节点, 不再基于倒排列表进行文本剪枝, 而是用布隆过滤器对子节点的文本信息进行抽象.由于布隆过滤器没有显式地存储字符串, 可以达到更小的空间开销. ②在叶子节点, 依然基于倒排列表进行准确匹配, 以保证能够找出所有满足空间和文本要求的空间文本对象并避免误报的发生.
3.2 RI上面提到的IR-Tree结构和RI结构都是基于空间索引结构的扩展结构, 然而往往都忽视了低频词汇在文本过滤中的剪枝作用.由于低频词汇只被少数空间文本对象拥有, 通过基于文本索引(如倒排列表)的扩展结构对数据进行索引时, 可以通过低频词汇快速缩小搜索空间.基于此, 这里采用了RI
![]() |
图 2 RI |
对于布尔范围查询, 首先在查询字符串集合中找到低频词汇(在构建RI
全局索引并不总是有益的.一方面, 使我们能够访问较少的分区, 从而节省更多的CPU资源, 降低网络成本; 但另一方面, 会导致额外的空间开销和时间开销.为了充分利用文本的剪枝作用, 本文采用了BFR全局索引结构[25]以应用于海量空间文本数据的场景.
BFR索引是基于R-Tree结构的多叉树结构, BFR索引的非叶子节点和R-Tree的非叶子节点一样, 只保存了空间边界信息.其叶子节点的每个记录存储了一个数据分区的id、空间边界信息及布隆过滤器.分区的空间边界信息由该分区所有点坐标信息获得; 这里数据分区对应的布隆过滤器存储了该分区下每个空间文本对象包含的字符串.由于没有显式地存储字符串数据, 通过布隆过滤器存储文本数据的方案可以达到更低的空间占用.同时, 通过布隆过滤器可以对相应的空间文本查询进行文本维度的过滤.
BFR索引的查询算法.给定布尔范围查询, 可以基于BFR索引进行搜索并返回符合查询的候选分区.其中, 在非叶子节点过滤出与查询中心的距离在空间阈值范围内的子节点; 在叶子节点, 除了空间过滤外, 进一步检查查询的所有字符串是否都存在于分区对应的布隆过滤器中.如果都存在则满足文本过滤条件, 该分区成为候选分区以进行进一步处理; 否则被丢弃.
5 分布式的空间文本查询算法实现本节将针对研究的两种空间文本查询问题进行依次探究.首先, 将基于上述的框架和索引结构对布尔范围查询的分布式算法进行探究; 然后, 将对空间文本相似连接进行更为深入的探索.
5.1 布尔范围查询基于上述的两层索引框架, 布尔范围查询的分布式处理算法如下.
全局过滤.首先, 基于全局索引选出候选分区.具体来讲, 通过BFR索引结构找出所有空间边界与给定的圆形查询范围有交叉且其布隆过滤器包含所有的查询字符串的分区, 并对这些分区进行局部过滤.
局部过滤.针对全局过滤后得到的每个分区, 基于每个分区建立的vRI
作为当下主流的分布式空间数据分析框架, 先前的工作[4]提出了两种基于距离的空间相似连接方案.下面, 对这两种方案进行回顾, 并基于这两种方案进行扩展提出6种分布式下的空间文本相似连接方案.
5.2.1 分布式下的空间相似连接给定空间数据集合
(1) 首先, 基于Sort-tile-recursive[26]算法对于
(2) 首先, 对
上述两种方案找出了满足连接条件的局部分区对.对于每个局部分区对, 文章进一步探索了相应的空间文本相似连接算法.本文在第1.3节中回顾了前缀过滤技术, 前缀过滤作为文本相似连接当中广泛应用的技术, 能够大大减少需要扫描的字符串数目.对于需要连接的两个空间文本数据分区
注意到上面的方案是先利用文本剪枝作用再利用空间距离进行过滤, 另外一种直接的思路是先进行空间过滤再进行文本剪枝.类似第5.2.1节提到的第二种方案, 可以先对
上述两个方案的缺陷是只利用了一个维度的剪枝能力.比如上述的第二个方案, 首先基于空间过滤再进行文本剪枝; 当给定的空间距离阈值很大且文本相似度阈值也很大时, 由于此时空间的剪枝能力几乎失效, 该方案会产生大量的叶子节点对.然而, 根据文本相似度限制, 此时真正满足连接条件的数据对应该较少.显然, 在这种场景下第二个方案的效率大大降低.同样, 在空间距离阈值很小且文本相似度也很小的场景下, 基于文本优先的方案也会产生效率问题.回顾在研究布尔范围查询时, 文章采用了RI结构, 其同时利用了空间和文本的剪枝能力. RI结构同样可以应用于空间文本相似连接问题, 在该问题背景下, 本文对RI结构进行修改并提出了Prefix-RI结构.具体来讲, Prefix-RI结构相对于RI结构的修改如下.
(1) 叶子节点不需要对其包含的所有字符串进行索引, 而是对每个空间文本对象的文本前缀中的字符串进行索引.
(2) 在非叶子节点的布隆过滤器中, 只存储子树中包含的空间文本对象的文本前缀中的字符串.
利用在
![]() |
在阐述该算法前, 先介绍Prefix-RI结构的一个重要性质.
性质5.1 给定基于空间文本数据集合
证 明 不失一般性的, 假设非叶子节点
接下来对基于Prefix-RI索引结构的搜索算法进行详细介绍.如算法1所示, 对于
可以看出, 上述的第三种方案, 通过结合空间和文本两个维度的剪枝作用, 可以更好地应对前面两种方案的失效场景.最后, 结合第5.2.1节中提到的两种分布式空间相似连接方案, 可以和上述3种方案进行进一步的组合.具体来讲, 首先通过这两种空间连接方案产生需要进行空间文本连接的局部分区对; 然后, 对于每个局部分区对, 采用本文介绍的3种空间文本数据连接方案进行进一步处理.根据这样的组合, 总共有6种分布式的空间文本相似连接方案: Spatial-first, Textual-first, Hybrid, Allpairs-Spatial-first, Allpairs-Textual-first及Allpairs-Hybrid. 表 1对这6种方案进行了详细介绍.
![]() |
表 1 分布式的空间文本相似连接方案描述 Tab.1 Distributed spatio-textual similarity join algorithms |
为了验证所提出算法的实际运行效果, 本文基于Spark SQL实现了相应的索引技术和2种空间文本查询操作.此外, 本文采用了由9个节点组成的集群进行实验探究, 由于实验设备的采购时间不一致, 主要包括以下3种不同配置的机器: ① 1台具有24核Intel Xeon E5-2620 2.00 GHz处理器和192 GB RAM的机器; ② 5台配备6核Intel Xeon E5-2603 v3 1.60 GHz处理器和20 GB RAM的机器; ③ 3台配备6核Intel Xeon E5-2609 1.90 GHz处理器和16 GB RAM的机器.选择一台类型①的机器作为主节点, 其他机器都作为从节点; 另外, 每个从节点使用15 GB内存和所有可用的6个CPU进行后续计算.所有节点都运行在Ubuntu 14.04.2 LTS系统下, 且各个节点都安装了Hadoop 2.6.1和Spark 1.6.3框架.
本文使用了两个真实的海量数据集. ① OSM数据集, 其包含3 000万条记录.数据集的空间部分来自于OpenStreetMap项目[27], 每个点由二维坐标表示; 另外, 每一个点关联了从SNAP[28] (斯坦福网络数据集项目)收集的文本数据集中提取的字符串集合. ② TX-CA数据集[27].该数据集中的点坐标代表了美国德克萨斯州和加利福尼亚州的真实道路网络和街道.此外, 将每个点的所在州、县和城镇名称相结合作为该点相关联的字符串集合.该数据集总共拥有2 600万条记录, 包括TX数据集共1 400万条, CA数据集共1 200万条.
基于以前的工作[4-5], 本文主要关注吞吐量(每分钟处理的请求数)和时间延迟两个性能指标.对于布尔范围查询, 开启了10个线程不断地发出查询来模拟用户并发请求; 总共进行500次查询以进一步计算性能指标.为了生成测试集, 首先从原始数据集中随机选择一条记录, 并使用其点坐标作为查询位置; 然后, 为了进一步了解字符串数目对查询性能的影响, 还从该记录中随机选择1到4个字符串作为查询字符串集合.此外, 本文还尝试探索查询区域对性能的影响; 这里, 查询区域定义为查询半径与数据集边界的长和宽较小值的百分比, 默认值为
由于当下缺乏直接支持上述2种空间文本查询的分布式系统, 在实验中, 对于布尔范围查询的实验对比, 论文采取了以下3种方案. ①基于当下主流的空间数据分布式分析系统进行扩展.由于这些系统大多基于R-Tree进行索引, 可以通过在R-Tree的叶子节点层加入倒排列表结构使这些平台能够处理布尔范围查询.这里由于文献[4]的大量实验对比证明了其杰出的性能, 本文基于文献[4]提出的系统进行了扩展, 此方案在实验对比中简称为Baseline1. ②基于IR-Tree实现的分布式空间文本分析方案. IR-Tree主要用于局部索引的构建, 该方案依然使用了BFR索引作为全局索引技术, 此方案在实验对比中简称为Baseline2. ③基于RI
索引空间开销.针对OSM数据集, 统计了两层索引的维护开销(在TX-CA数据集上的结果与此相似).首先, 针对3 000万条空间文本数据进行索引时, 采用的全局索引的空间占用仅为49.57 MB.通常, 维护全局索引的Master节点的物理内存可达到上百GB, 因此, 所采用的全局索引也能很好地应对更大的数据集带来的挑战.对于局部索引, IR-Tree的空间占用为59.8 GB而RI
查询字符串数目的影响.如图 3所示为查询字符串数目对布尔范围查询性能的影响.从图中可以看到, 这3种方案在查询字符串数目增大的时候性能都有提升.这是由于只有1个查询字符串的时候, 通常会有较多符合查询条件的解; 一方面查询命中的分区会更多, 另外在每个分区下的处理时间也更大.当查询字符串数目增大时, 满足条件的解数目大大减少, 带来了更强的剪枝能力.另外, 当查询字符串数目在2到4之间变化时, 此时性能变化不大; 这说明此时解集数目基本没有太大变化.注意到在有多个查询字符串时, 本文采用的索引技术由于更好地利用了低频词汇的剪枝能力, 取得了更好的性能.
![]() |
图 3 查询字符串数目的影响(OSM数据集) Fig.3 Effect of query keywords (OSM Dataset) |
查询范围的影响.如图 4所示, 当查询范围从
![]() |
图 4 查询范围的影响(TX-CA数据集) Fig.4 Effect of the query area (TX-CA Dataset) |
数据集大小的影响.如图 5所示为数据集大小对布尔范围查询的影响.当数据规模从1千万增长到6千万(
![]() |
图 5 数据集大小的影响(OSM数据集) Fig.5 Effect of data size (OSM Dataset) |
全局索引的有效性验证.为了验证文章采用的全局索引的有效性, 通过图 6展示了使用R-Tree作为全局索引和使用BFR索引作为全局索引这两种方案的性能对比.基于前面的实验结果, 这里局部索引直接采用了RI
![]() |
图 6 全局索引的有效性(TX-CA数据集) Fig.6 Effect of the global index (TX-CA Dataset) |
文本相似度阈值的影响.如图 7所示为文本相似度阈值对空间文本相似连接的性能影响.随着文本相似度阈值的增大, 6种方案的耗时都在下降.显然文本相似度阈值越大, 根据前缀过滤技术的原理, 此时需要扫描的字符串数目越小; 因此, 需要验证的空间文本对象对数目也在下降.注意到, 在这6种方案中, 由于Hybrid方案同时结合了空间和文本的剪枝能力, 在实验中取得了最好的性能.相比之下, 由于Allpairs-Hybrid引入的分区对数目较多, 因此相比Hybrid的额外开销也会更大.另外, 实验发现基于文本优先的连接方案取得了最差的性能(包括Textual-First和Allpairs-Textual-First两个方案).
![]() |
图 7 文本相似度阈值的影响(OSM数据集) Fig.7 Effect of textual similarity thresh-old (OSM Dataset) |
空间距离阈值的影响.如图 8所示, 随着空间距离阈值的增大, 所有方案的耗时都在增大.但对比可以发现, Hybrid方案消耗的时间最少且增长趋势更为缓慢; 这主要由于其结合了文本的剪枝作用, 所以, 对于查询空间范围的增大更为不敏感, 在实验中展现了更好的适应性.
![]() |
图 8 空间距离阈值的影响(OSM数据集) Fig.8 Effect of spatial distance thresh-old (OSM Dataset) |
本文采用了分布式环境下的两层索引框架(包括全局索引和局部索引), 基于该框架本文提出了分布式的处理算法以解决空间文本相似连接等查询问题.同时, 本文基于Spark平台实现了所提出的分布式算法, 并在两个真实的数据集下进行了充分的实验对比, 实验结果验证了本文提出的算法的有效性.随着越来越多的工作致力于解决路网场景下的查询问题[30-34], 在将来的工作中, 我们将进一步研究路网下的空间文本查询问题.
[1] | CHEN L, CONG G, JENSEN C S, et al. Spatial keyword query processing: An experimental evaluation[C]//International Conference on Very Large Data Bases. Trondheim, Norway: VLDB Endowment, 2013, 6(3): 217-228. http://www.vldb.org/pvldb/vol6/p217-chen.pdf |
[2] | BOUROS P, GE S, MAMOULIS N. Spatio-textual similarity joins[J]. Proceedings of the VLDB Endowment, 2012, 6(1): 1-12. DOI:10.14778/2428536 |
[3] | ZAHARIA M, CHOWDHURY M, DAS T, et al. Resilient distributed datasets: A fault-tolerant abstraction for in-memory cluster computing[C]//USENIX Association Usenix Conference on Networked Systems Design and Implementation. New York: ACM, 2012, 70(2): 2. http://people.csail.mit.edu/matei/papers/2012/nsdi_spark.pdf |
[4] | XIE D, LI F, YAO B, et al. Simba: Effcient in-memory spatial analytics[C]//International Conference on Management of Data. New York: ACM, 2016: 1071-1085. https://www.cs.utah.edu/~lifeifei/papers/simba.pdf |
[5] | ELDAWY A, MOKBEL M F. Spatial Hadoop: A MapReduce framework for spatial data[C]//International Conference on Data Engineering. New York: IEEE, 2016: 1352-1363. https://www.microsoft.com/en-us/research/video/spatialhadoop-mapreduce-framework-big-spatial-data/ |
[6] | XIE D, LI F, YAO B, et al. Simba: Spatial in-memory big data analysis[C]//ACM Sigspatial International Conference on Advances in Geographic Information Systems. New York: ACM, 2016: 86-89. https://www.cs.utah.edu/~lifeifei/papers/simba-demo.pdf |
[7] | YAO B, ZHANG W, WANG Z J, et al. Distributed in-memory analytics for big temporal data[C]//International Conference on Database Systems for Advanced Applications. Berlin: Springer, 2018: 549-565. https://link.springer.com/chapter/10.1007/978-3-319-91452-7_36 |
[8] | AJI A, WANG F, VO H, et al. Hadoop-GIS:A high performance spatial data warehousing system over MapReduce[J]. Proceedings of the VLDB Endowment, 2013, 6(11): 1009-1020. DOI:10.14778/2536222 |
[9] | YAO B, LI F, HADJIELEFTHERIOU M, et al. Approximate string search in spatial databases[C]//International Conference on Data Engineering. New York: IEEE, 2010: 545-556. http://www.cs.sjtu.edu.cn/~yaobin/papers/icde10_sas.pdf |
[10] | YAO B, TANG M, LI F. Multi-approximate-keyword routing in GIS data[C]//ACM Sigspatial International Conference on Advances in Geographic Information Systems. New York: ACM, 2011: 201-210. http://www.cs.sjtu.edu.cn/~yaobin/makr/ |
[11] | LI F, YAO B, TANG M, et al. Spatial approximate string search[J]. IEEE Transactions on Knowledge and Data Engineering, 2013, 25(6): 1394-1409. DOI:10.1109/TKDE.2012.48 |
[12] | ZHOU Y, XIE X, WANG C, et al. Hybrid index structures for location-based web search[C]//International Conference on Information and Knowledge Management. New York: ACM, 2005: 155-162. https://dl.acm.org/citation.cfm?id=1099584 |
[13] | BECKMANN N, KRIEGEL H P, SCHNEIDER R, et al. The R*-tree:An effcient and robust access method for points and rectangles[J]. ACM Sigmod Record, 1990, 19(2): 322-331. DOI:10.1145/93605 |
[14] | GUTTMAN A. R-trees: A dynamic index structure for spatial searching[C]//International Conference on Management of Data. New York: ACM, 1984: 47-57. |
[15] | WU D, JENSEN C S. A density-based approach to the retrieval of top-k spatial textual clusters[C]//International Conference on Information and Knowledge Management. New York: ACM, 2016: 2095-2100. https://www.researchgate.net/publication/310823546_A_Density-Based_Approach_to_the_Retrieval_of_Top-K_Spatial_Textual_Clusters |
[16] | CHOUDHURY F M, CULPEPPER J S, SELLIS T. Batch processing of top-k spatial-textual queries[C]//International ACM Workshop on Managing and Mining Enriched Geo-Spatial Data. New York: ACM, 2015: 7-12. http://www.culpepper.io/publications/ccs15-georich.pdf |
[17] | LUO C, LI J, LI G, et al. Effcient reverse spatial and textual k nearest neighbor queries on road networks[J]. Knowledge-Based Systems, 2016, 93: 121-134. DOI:10.1016/j.knosys.2015.11.009 |
[18] | CHEN Z, CONG G, ZHANG Z, et al. Distributed publish/subscribe query processing on the spatio-textual data stream[C]//International Conference on Data Engineering. New York: IEEE, 2017: 1095-1106. |
[19] | YAO B, LI F, KUMAR P. K nearest neighbor queries and knn-joins in large relational databases (almost) for free[C]//International Conference on Data Engineering. New York: IEEE, 2010: 4-15. https://www.cs.utah.edu/~lifeifei/papers/icde10_knn.pdf |
[20] | 徐石磊, 王雷, 胡卉芪. 基于分布式系统OceanBase的并行连接[J]. 华东师范大学学报(自然科学版), 2017(5): 1-10. DOI:10.3969/j.issn.1000-5641.2017.05.001 |
[21] | SARAWAGI S, KIRPAL A. Effcient set joins on similarity predicates[C]//International Conference on Management of Data. New York: ACM, 2004: 743-754. http://www.cs.cmu.edu/~natassa/courses/15-721/resources/set_join.pdf |
[22] | CHAUDHURI S, GANTI V, KAUSHIK R. A primitive operator for similarity joins in data cleaning[C]//International Conference on Data Engineering. New York: IEEE, 2006: 5. https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/ssjoin.pdf |
[23] | BAYARDO R J, MA Y, SRIKANT R. Scaling up all pairs similarity search[C]//International Conference on World Wide Web. New York: ACM, 2007: 131-140. https://wenku.baidu.com/view/027d1ad084254b35eefd3471.html |
[24] | FAN L, CAO P, ALMEIDA J, et al. Summary cache:A scalable wide-area web cache sharing protocol[J]. IEEE/ACM Transactions on Networking, 2000, 8(3): 281-293. DOI:10.1109/90.851975 |
[25] | XU Y, YAO B, WANG Z J, et al. Skia: Scalable and effcient in-memory analytics for big spatialtextualdata[EB/OL]. (2018-05-15)[2018-06-18]. https://www.researchgate.net/publication/326352693. |
[26] | LEUTENEGGER S T, LOPEZ M A, EDGINGTON J. STR: a simple and effcient algorithm for R-tree packing[C]//International Conference on Data Engineering. New York: IEEE, 1997: 497-506. |
[27] | OpenStreetMap Foundation. Openstreetmap project[EB/OL]. (2016-02-12)[2018-06-18]. http://www.openstreetmap.org. |
[28] | LESKOVEC J, KREYL A. SNAP Datasets: Stanford large network dataset collection[EB/OL]. (2014-06-01)[2018-06-18]. http://snap.stanford.edu/data. |
[29] | SAHAMI M, HEILMAN T D. A web-based kernel function for measuring the similarity of short text snippets[C]//International Conference on World Wide Web. New York: ACM, 2006: 377-386. |
[30] | YAO B, CHEN Z, GAO X, et al. Flexible aggregate nearest neighbor queries in road networks[C]//International Conference on Data Engineering. New York: IEEE, 2018: 1-12. http://mashuai.buaa.edu.cn/pubs/icde2018b.pdf |
[31] | MA J, YAO B, GAO X, et al. Top-k Critical Vertices Query on Shortest Path[J]. IEEE Transactions on Knowledge and Data Engineering, 2018, 99(1): 1-13. |
[32] | XIE D, LI G, YAO B, et al. Practical private shortest path computation based on oblivious storage[C]//International Conference on Data Engineering. New York: IEEE, 2016: 361-372. http://www.cs.utah.edu/~dongx/paper/psp-icde.pdf |
[33] | YAO B, XIAO X, LI F, et al. Dynamic monitoring of optimal locations in road network databases[J]. The International Journal on Very Large Data Bases, 2014, 23(5): 697-720. DOI:10.1007/s00778-013-0347-5 |
[34] | XIAO X, YAO B, LI F. Optimal location queries in road network databases[C]//International Conference on Data Engineering. New York: IEEE, 2011: 804-815. http://www.cs.sjtu.edu.cn/~yaobin/papers/olq.pdf |