一种基于geohash与Patricia Trie的空间关键词查询方法及装置制造方法及图纸

技术编号:19511378 阅读:30 留言:0更新日期:2018-11-21 07:49
本发明专利技术涉及一种基于geohash与Patricia Trie的空间关键词查询方法及装置,本发明专利技术方法包括:数据预处理步骤,通过geohash空间编码方法将数据集D中所有位置点编码成长度为n的字符串geoStr,以geoStr为排序对象按字典序对数据集D中的每行数据排序并生成编号id;空间关键词索引建立步骤,对geoStr构建Patricia Trie,Patricia Trie的叶节点指向根据该域内关键词构建的倒排索引,倒排索引的列表元素为关键词及与其相对应的id列表,得到空间关键词索引结构;其中,该域指从根节点到叶节点所构成的字符串;空间关键词查询步骤,检索空间关键词索引结构,获取满足查询条件的id,经过滤得到id候选集,并对候选集验证返回满足空间查询条件的位置点。本发明专利技术可高效支持任意空间范围的关键词查询。

【技术实现步骤摘要】
一种基于geohash与PatriciaTrie的空间关键词查询方法及装置
本专利技术涉及一种基于geohash与PatriciaTrie的空间关键词查询方法及装置,属于空间关键词查询(SpatialKeywordquery)领域、基于位置的服务(Location-BasedService,LBS)等领域。
技术介绍
近年来,随着GPS移动设备的普及、社交网络的发展,产生了大量基于位置的服务,如:社交服务(微信、陌陌、Twitter、Foursquare等)、食住服务(携程、去哪儿、美团外卖等)、导航服务(高德地图、腾讯地图、Google地图等)、娱乐服务(全城热斗、Wikitude等)。这些服务产生了大量具有位置属性的数据,即空间文本,如何从这些数据中快速获取所需信息是空间文本查询领域的核心问题。根据应用场景,空间文本查询可分为空间关键词查询与分发/订阅查询。高效支持空间关键词查询则需高效的空间文本索引结构。目前,国内外对空间文本索引结构进行了广泛而又深入的研究,这些索引结构通常组合空间索引结构与文本索引结构。根据所采用的空间索引结构的不同,可将其分为:基于R-Tree及其变体、grid/Quad-Tree、space-fillingcurve的空间文本索引;根据所采用的文本索引结构,可将其分为:基于倒排列表与签名文件的空间文本索引。空间索引与文本索引的组合方式分为:独立组合、松散组合、紧凑组合。据空间文本查询领域国内外研究现状可知,R-Tree及其变体与倒排索引组合的索引结构是主流的空间文本索引结构。R-Tree的变体以面积最小原则、重叠区域最小原则、周长最小原则和存储利用率较高原则为导向对R-Tree进行优化,但检索效率仍受R-Tree多路径查询问题的制约。
技术实现思路
为高效支持任意空间范围的关键词查询,本专利技术提供了一种基于geohash与PatriciaTrie的空间关键词查询方法及装置。本专利技术的技术方案是:一种基于geohash与PatriciaTrie的空间关键词查询方法,包括:数据预处理步骤,通过geohash空间编码方法将数据集D中所有位置点编码成长度为n的字符串geoStr,以geoStr为排序对象按字典序对数据集D中的每行数据排序并生成编号id,每一行数据称为一条记录r,则由一至多行记录r组成的数据集称为记录集R;空间关键词索引建立步骤,对geoStr构建PatriciaTrie,PatriciaTrie的叶节点指向根据该域内关键词构建的倒排索引,倒排索引的列表元素为关键词及与其相对应的id列表,得到空间关键词索引结构;其中,该域指从根节点到叶节点所构成的字符串;空间关键词查询步骤,检索空间关键词索引结构,获取满足查询条件的id,经过滤得到id候选集,并对候选集验证返回满足空间查询条件的位置点。所述数据预处理步骤,具体包括如下步骤:步骤110:给定一个由一系列位置点、关键词集构成的数据集D,通过geohash空间编码方法将数据集D中的位置点编码成长度为n的字符串geoStr;其中,位置点由纬度、经度数据构成;geoStr即geohash编码,表示geohash精度表中n对应的范围区域;步骤120:以geoStr为排序对象按字典序对数据集D中的每行数据排序并生成编号id,每一行数据称为一条记录r,则由一至多行记录r组成的数据集称为记录集R;其中,R中每行数据r由id、纬度lat、经度lon、字符串geoStr、关键词集items组成,items至少包含一个关键词item。所述空间关键词索引建立步骤,具体为:步骤210:对Rstr构建PatriciaTrie,每个geoStr可映射为PatriciaTrie中一条从根到叶节点的路径,PatriciaTrie叶节点指向根据该域内关键词构建的倒排索引,PatriciaTrie的所有叶节点通过指针连接,PatriciaTrie内部节点存储以该节点为根结点的PatriciaTrie子树的叶节点个数;其中,Rstr表示R中所有geoStr且保持其顺序性;该域指从根节点到叶节点所构成的字符串geoStri;步骤220:对Ritems中每个独立元素item,构建一个由包含item的rpart.id组成的倒排列表;其中,rpart表示R中包含geoStri的r.id、r.items,r.id表示r的id,r.items表示r的关键词集,Rpart表示由一至多行rpart组成的数据集;Ritems表示Rpart中全部关键词,rpart.id表示rpart的id。所述空间关键词查询步骤,具体包括如下步骤:步骤310:给定查询位置点q、查询距离范围d、查询关键词集qitems,根据geohash精度表选定与d相对应的geohash编码长度p,通过geohash空间编码方法将位置点q编码为p位长度的字符串qs,获取字符串qs周围8个区域的geohash编码,并将字符串qs及其周围8个区域的geohash编码分别作为查询域,共9个查询域;其中,p对应的距离误差不小于d且为最小值;qitems至少由一个关键词item构成;步骤320:检索空间关键词索引结构返回满足查询条件的id;其中,查询条件指查询域内包含全部qitems的id;步骤330:根据查询位置点q和查询距离范围d分别确定纬度范围与经度范围,根据经纬度范围对与步骤320返回的id相对应的位置点进行筛选,最终得到id候选集;步骤340:计算候选集中id对应的位置点到q的距离dq:若dq≤d,则返回该位置点,否则,不返回。所述步骤110,包括下列步骤111、112:步骤111:根据geohash精度表确定geohash编码长度n;步骤112:通过geohash空间编码方法将所有位置点编码成长度为n的字符串。通过geohash空间编码方法将位置点编码成字符串,具体为:首先,将经纬度范围看作二维平面坐标系;然后,采用二分法对经度/纬度进行划分,根据位置点经度/纬度在划分结果中的位置分别赋值0或1,直到划分次数满足对应的经/纬度位串的位数;之后,通过位交错方法合并经度位串与纬度位串;最后,通过Base32编码将经纬度位串编码为相应长度的字符串。所述步骤310中,获取qs周围8个区域的geohash编码的方法:根据qs的经纬度位串,东/西方向的区域编码:经度位串不变,纬度位串加/减1,通过位交错方法得到该区域的经纬度位串;南/北方向的区域编码:纬度位串不变,经度位串减/加1,通过位交错方法得到该区域的经纬度位串;东北/西南方向的区域编码,经纬度位串均加/减1,通过位交错方法得到该区域的经纬度位串;东南方向的区域编码:纬度位串加1,经度位串减1,通过位交错方法得到该区域的经纬度位串;西北方向的区域编码:纬度位串减1,经度位串加1,通过位交错方法得到该区域的经纬度位串;之后,通过Base32编码将以上8个位串进行编码即可获得qs周围8个区域的geohash编码。所述步骤320具体为:步骤321:以任一查询域为例,若p等于n,通过检索PatriciaTrie即可选取待检索的倒排列表;反之,若p不等于n,判断根据查询域检索PatriciaTrie到达的内部节点,若该节点为叶节点,则直接选取待检索的倒排列表,反之,采本文档来自技高网
...

【技术保护点】
1.一种基于geohash与Patricia Trie的空间关键词查询方法,其特征在于:包括:数据预处理步骤,通过geohash空间编码方法将数据集D中所有位置点编码成长度为n的字符串geoStr,以geoStr为排序对象按字典序对数据集D中的每行数据排序并生成编号id,每一行数据称为一条记录r,则由一至多行记录r组成的数据集称为记录集R;空间关键词索引建立步骤,对geoStr构建Patricia Trie,Patricia Trie的叶节点指向根据该域内关键词构建的倒排索引,倒排索引的列表元素为关键词及与其相对应的id列表,得到空间关键词索引结构;其中,该域指从根节点到叶节点所构成的字符串;空间关键词查询步骤,检索空间关键词索引结构,获取满足查询条件的id,经过滤得到id候选集,并对候选集验证返回满足空间查询条件的位置点。

【技术特征摘要】
1.一种基于geohash与PatriciaTrie的空间关键词查询方法,其特征在于:包括:数据预处理步骤,通过geohash空间编码方法将数据集D中所有位置点编码成长度为n的字符串geoStr,以geoStr为排序对象按字典序对数据集D中的每行数据排序并生成编号id,每一行数据称为一条记录r,则由一至多行记录r组成的数据集称为记录集R;空间关键词索引建立步骤,对geoStr构建PatriciaTrie,PatriciaTrie的叶节点指向根据该域内关键词构建的倒排索引,倒排索引的列表元素为关键词及与其相对应的id列表,得到空间关键词索引结构;其中,该域指从根节点到叶节点所构成的字符串;空间关键词查询步骤,检索空间关键词索引结构,获取满足查询条件的id,经过滤得到id候选集,并对候选集验证返回满足空间查询条件的位置点。2.根据权利要求1所述的基于geohash与PatriciaTrie的空间关键词查询方法,其特征在于:所述数据预处理步骤,具体包括如下步骤:步骤110:给定一个由一系列位置点、关键词集构成的数据集D,通过geohash空间编码方法将数据集D中的位置点编码成长度为n的字符串geoStr;其中,位置点由纬度、经度数据构成;geoStr即geohash编码,表示geohash精度表中n对应的范围区域;步骤120:以geoStr为排序对象按字典序对数据集D中的每行数据排序并生成编号id,每一行数据称为一条记录r,则由一至多行记录r组成的数据集称为记录集R;其中,R中每行数据r由id、纬度lat、经度lon、字符串geoStr、关键词集items组成,items至少包含一个关键词item。3.根据权利要求1所述的基于geohash与PatriciaTrie的空间关键词查询方法,其特征在于:所述空间关键词索引建立步骤,具体为:步骤210:对Rstr构建PatriciaTrie,每个geoStr可映射为PatriciaTrie中一条从根到叶节点的路径,PatriciaTrie叶节点指向根据该域内关键词构建的倒排索引,PatriciaTrie的所有叶节点通过指针连接,PatriciaTrie内部节点存储以该节点为根结点的PatriciaTrie子树的叶节点个数;其中,Rstr表示R中所有geoStr且保持其顺序性;该域指从根节点到叶节点所构成的字符串geoStri;步骤220:对Ritems中每个独立元素item,构建一个由包含item的rpart.id组成的倒排列表;其中,rpart表示R中包含geoStri的r.id、r.items,r.id表示r的id,r.items表示r的关键词集,Rpart表示由一至多行rpart组成的数据集;Ritems表示Rpart中全部关键词,rpart.id表示rpart的id。4.根据权利要求1所述的基于geohash与PatriciaTrie的空间关键词查询方法,其特征在于:所述空间关键词查询步骤,具体包括如下步骤:步骤310:给定查询位置点q、查询距离范围d、查询关键词集qitems,根据geohash精度表选定与d相对应的geohash编码长度p,通过geohash空间编码方法将位置点q编码为p位长度的字符串qs,获取字符串qs周围8个区域的geohash编码,并将字符串qs及其周围8个区域的geohash编码分别作为查询域,共9个查询域;其中,p对应的距离误差不小于d且为最小值;qitems至少由一个关键词item构成;步骤320:检索空间关键词索引结构返回满足查询条件的id;其中,查询条件指查询域内包含全部qitems的id;步骤330:根据查询位置点q和查询距离范围d分别确定纬度范围与经度范围,根据经纬度范围对与步骤320返回的id相对应的位置点进行筛选,最终得到id候选集;步骤340:计算候选集中id对应的位置点到q的距离dq:若dq≤d,则返回该位置点,否则,不返回。5.根据权利要求2所述的基于geohash与PatriciaTrie的空间关键词查询方法,其特征在于:所述步骤110,包括下列步骤111、112...

【专利技术属性】
技术研发人员:沈兵林贾连印李孟娟李晓武丁家满左喻灏胡俊涛雷妍
申请(专利权)人:昆明理工大学
类型:发明
国别省市:云南,53

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

1