一种基于道路网的关键词Skyline模糊查询方法及系统技术方案

技术编号:22166795 阅读:22 留言:0更新日期:2019-09-21 10:31
本发明专利技术公开了一种基于道路网的关键词Skyline模糊查询方法及系统,该方法为:先构建KR‑Tree索引,再将用户输入的关键词转换为计算机能够识别的三元组形式

A Method and System of Keyword Skyline Fuzzy Query Based on Road Network

【技术实现步骤摘要】
一种基于道路网的关键词Skyline模糊查询方法及系统
本专利技术属于空间数据库查询
,尤其涉及一种基于道路网的关键词Skyline模糊查询方法及系统。
技术介绍
随着GPS定位技术的快速发展,无线终端设备的普及,基于位置的服务与应用产生了海量的空间文本数据,例如:饿了么手机应用的商家信息(包含商家的空间位置信息,商家描述性标签信息),用户在新浪微博上发布的消息(包含用户发布消息时的空间地理位置信息,文本关键词信息)。面向海量空间文本数据,针对用户提出的多偏好查询,如何多维度同时选取一组相对较优的结果集成为了当下研究的热点。Skyline查询多用于解决多目标决策问题。对于多维数据集中对象集合,若存在对象A在所有纬度上的属性均不弱于对象B,且对象A至少在一个纬度上的属性优于对象B,则称对象A支配对象B。而Skyline查询的结果集为一组不受任何对象支配的对象集合。支配计算过程中对象的优劣选择,往往在实际应用中由查询用户的偏好所决定。现有的空间关键词Skyline查询方法将兴趣点(PointofInterest)与查询点之间的最短路径作为度量距离,但是随着道路网环境复杂程度的增加,路网距离计算的时间开销也将因此增大,从而导致查询效率的急剧降低。而用户在实际查询过程中查询关键词也可能出现输入错误,例如,用户可能将关键词“starbucks”输入为“starbuck”,导致无法获得期望的查询结果。但是在传统的解决方案中,关键词之间的相似性过滤需要依靠一个统一的阈值进行过滤,而对于长度不同的查询关键词,很难通过一个统一的阈值进行相似度量;其次,传统方法主要集中于解决单关键词模糊匹配问题,对于解决多关键词模糊匹配问题支持度较低。与本文相关的专利申请情况如下:[1]云环境下基于密文的多关键词模糊查询方法(申请日期:2018.05.23,公开号:CN108710698A)。[2]一种处理地理文本Skyline查询的混合空间索引机制(申请日期:2017.10.12,公开号:CN108052514A)。[3]基于空间时序数据流应用的Skyline查询方法(申请日期:2016.12.14,公开号:CN106708989A)。
技术实现思路
专利技术目的:为解决上述现有技术中关键词输入错误和输入不同长度的关键词都会导致模糊匹配的效率降低的问题,本专利技术提供一种基于道路网的关键词Skyline模糊查询方法及系统。技术方案:本专利技术提供一种基于道路网的关键词Skyline模糊查询方法,包括如下步骤:步骤1,针对磁盘中存储的数据库,在内存中构建相应的KR-Tree索引;步骤2,将用户输入的关键词转换为计算机能够识别的三元组形式<L,R,T>,其中L为用户的空间位置,R为用户查询区域的半径,T为用户输入的关键词集合;步骤3,调用KR-Tree索引,并根据深度优先原则和<L,R,T>,利用KR-Tree索引检索数据库;步骤4,检索结束后,将检索结果返回给用户。进一步的,所述构建KR-Tree索引的具体方法如下所示:步骤A,根据数据库中兴趣点的数量预估所需内存空间的大小,并向计算机申请相应大小的内存空间;步骤B,在内存空间起始段初始化索引头,从而生成根节点,并自顶向下开始访问根节点下的叶子节点;步骤C,遍历数据库中所有兴趣点,并将所有兴趣点的空间坐标作为键值依次插入至叶子节点中,必要时引入父节点,从而完成KR-Tree索引框架的构建;步骤D,遍历所有兴趣点所持有的关键词,并将所有兴趣点所持有的关键词插入至对应的叶子节点的AK-Table索引的特定位置中,从而构建叶子节点的AK-Table索引;所述对应的叶子节点为某个关键词所属的兴趣点其坐标所在的叶子节点;步骤E,叶子节点的AK-Table索引构建完毕后,构建所有的父节点的AK-Table索引;步骤F,整个KR-Tree索引建立完毕,将内存中的索引以节点为基本单位分块写入磁盘中。进一步的,所述步骤C的具体方法为:步骤C1,将键值插入至当前节点中,如果该节点中的键值数超过最大值F,则根据近邻原则对该节点进行分裂,从而产生两个新的节点;若已经有父节点向下指向该当前节点,则将该父节点向下指向产生两个新的节点,并更新父节点的信息,如果没有父节点向下指向当前节点,则向上一层生成一个新的父节点,并将该父节点的指针向下指向分裂产生两个新的节点,再更新父节点的信息;步骤C2,再次从根节点出发,将剩余的兴趣点的键值根据近邻原则依次插入至已有的叶子节点中,直至所有的兴趣点的键值均被依次插入至叶子节点中。进一步的,所述更新父节点的信息的具体操作为:将父节点作为当前节点,并将该两个新节点分别表示的空间区域坐标信息作为两个键值插入至父节点中。进一步的,所述步骤D的具体方法为:将当前兴趣点所持有的所有关键词逐一输入至Hash函数,得到该兴趣点中每个关键词的Hash值,并根据每个关键词的Hash值,将该关键词插入至对应的叶子节点的AK-Table索引的特定位置中,并记录该兴趣点的id,如果该位置已经记录了其他兴趣点中与该关键词的相同关键词,则在该位置后新增一个后继链表节点,并在该后继链表节点中记录该关键词,和当前兴趣点的id;直至所有的兴趣点中所有的关键词均被插入至AK-Table索引中。进一步的,所述步骤E的具体方法为:每个父节点的关键词为与该父节点相连接的下一层节点的所有关键词的集合,将每个父节点所持有的所有关键词逐一输入至Hash函数,得到每个关键词的Hash值,并根据每个关键词的Hash值插入至该父节点的AK-Table索引的特定位置中,记录该关键词所在位置区域的id,如果该位置已经有记录了,则在该位置后面新增一个后继链表节点,并在该后继链表节点中记录该关键词,和该关键词所在位置区域的id。进一步的,所述检索数据库的具体方法为:步骤3.1,根据查询条件由KR-Tree索引的根节点开始自顶向下访问索引的节点;步骤3.2,判断当前节点是否为叶子节点,如果是则转步骤3.8,否则转步骤3.3;步骤3.3,判断当前节点所在的区域与查询区域空间上是否存在重叠区域,如果存在则转步骤3.4;否则转步骤3.6;步骤3.4,计算当前节点的AK-Table索引中的关键词的集合与T的文本相似度是否小于等于阈值K;如果是则转步骤3.5;否则转步骤3.6;步骤3.5,根据深度优先原则访问当前节点的后继节点,即与当前节点相连的下一层节点,并转步骤3.2;步骤3.6,判断当前节点是否存在尚未访问的兄弟节点,如果有则访问该兄弟节点并跳转步骤3.2;否则停止向下访问,并返回上一个节点,转步骤3.7;步骤3.7,判断当前节点是否为根节点,如果是则转步骤3.9;否则转步骤3.6;步骤3.8,将当前叶子节点中的所有的兴趣点与候选集中的所有的兴趣点进行支配关系比较,剔除候选集和当前叶子节点中被其他兴趣点支配的兴趣点,其余的兴趣点则保留至候选集中,形成新的候选集,比较完毕后转步骤3.6;步骤3.9,所有满足查询条件的叶子节点均被遍历,将最后得到的候选集中的兴趣点作为查询结果。进一步的,所述步骤3.4中计算文本相似度的方法为:如果用户输入的为单关键词,则采用下述公式计算文本相似度:其中S(tq,To),表示用户q输入的关键词tq本文档来自技高网
...

【技术保护点】
1.一种基于道路网的关键词Skyline模糊查询方法,其特征在于,包括如下步骤:步骤1,针对磁盘中存储的数据库,在内存中构建相应的KR‑Tree索引;步骤2,将用户输入的关键词转换为计算机能够识别的三元组形式<L,R,T>,其中L为用户的空间位置,R为用户查询区域的半径,T为用户输入的关键词集合;步骤3,调用KR‑Tree索引,并根据深度优先原则和<L,R,T>,利用KR‑Tree索引检索数据库;步骤4,检索结束后,将检索结果返回给用户。

【技术特征摘要】
1.一种基于道路网的关键词Skyline模糊查询方法,其特征在于,包括如下步骤:步骤1,针对磁盘中存储的数据库,在内存中构建相应的KR-Tree索引;步骤2,将用户输入的关键词转换为计算机能够识别的三元组形式<L,R,T>,其中L为用户的空间位置,R为用户查询区域的半径,T为用户输入的关键词集合;步骤3,调用KR-Tree索引,并根据深度优先原则和<L,R,T>,利用KR-Tree索引检索数据库;步骤4,检索结束后,将检索结果返回给用户。2.根据权利要求1所述的方法,其特征在于,所述构建KR-Tree索引的具体方法如下所示:步骤A,根据数据库中兴趣点的数量预估所需内存空间的大小,并向计算机申请相应大小的内存空间;步骤B,在内存空间起始段初始化索引头,从而生成根节点,并自顶向下开始访问根节点下的叶子节点;步骤C,遍历数据库中所有兴趣点,并将所有兴趣点的空间坐标作为键值依次插入至叶子节点中,必要时引入父节点,从而完成KR-Tree索引框架的构建;步骤D,遍历所有兴趣点所持有的关键词,并将所有兴趣点所持有的关键词插入至对应的叶子节点的AK-Table索引的特定位置中,从而构建叶子节点的AK-Table索引;所述对应的叶子节点为某个关键词所属的兴趣点其坐标所在的叶子节点;步骤E,叶子节点的AK-Table索引构建完毕后,构建所有的父节点的AK-Table索引;步骤F,整个KR-Tree索引建立完毕,将内存中的索引以节点为基本单位分块写入磁盘中。3.根据权利要求2所述的方法,其特征在于,所述步骤C的具体方法为:步骤C1,将键值插入至当前节点中,如果该节点中的键值数超过最大值F,则根据近邻原则对该节点进行分裂,从而产生两个新的节点;若已经有父节点向下指向该当前节点,则将该父节点向下指向产生两个新的节点,并更新父节点的信息,如果没有父节点向下指向当前节点,则向上一层生成一个新的父节点,并将该父节点的指针向下指向分裂产生两个新的节点,再更新父节点的信息;步骤C2,再次从根节点出发,将剩余的兴趣点的键值根据近邻原则依次插入至已有的叶子节点中,直至所有的兴趣点的键值均被依次插入至叶子节点中。4.根据权利要求3所述的方法,其特征在于,所述更新父节点的信息的具体操作为:将父节点作为当前节点,并将该两个新节点分别表示的空间区域坐标信息作为两个键值插入至父节点中。5.根据权利要求2所述的方法,其特征在于,所述步骤D的具体方法为:将当前兴趣点所持有的所有关键词逐一输入至Hash函数,得到该兴趣点中每个关键词的Hash值,并根据每个关键词的Hash值,将该关键词插入至对应的叶子节点的AK-Table索引的特定位置中,并记录该兴趣点的id,如果该位置已经记录了其他兴趣点中与该关键词的相同关键词,则在该位置后新增一个后继链表节点,并在该后继链表节点中记录该关键词,和当前兴趣点的id;直至所有的兴趣点中所有的关键词均被插入至AK-Table索引中。6.根据权利要求2所述的方法,其特征在于,所述步骤E的具体方法为:每个父节点的关键词为与该父节点相连接的下一层节点的所有关键词的集合,将每个父节点所持有的所有关键词逐一输入至Hash函数,得到每个关键词的Hash值,并根据每个关键词的Hash值插入至该父节点的AK-Table索引的特定位置中,记录该关键词所在位置区域的id,如果该位置已经有记录了,则在该位置后面新增一个后继链表节点,并在该后继链表节点中记录该关键词,和该关键...

【专利技术属性】
技术研发人员:秦小麟李星罗王宁鲍斌国张彤陈骏岭
申请(专利权)人:南京航空航天大学
类型:发明
国别省市:江苏,32

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

1