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

技术编号:19388853 阅读:27 留言:0更新日期:2018-11-10 02:01
本发明专利技术涉及一种基于geohash与B‑Tree的空间关键词查询方法及装置,本发明专利技术方法包括:数据预处理步骤,将数据集D中所有位置点编码成长度为n的字符串string,以string为排序对象按字典序对数据集D中的每行数据排序并生成编号id、标识flag,每一行数据称为一条记录r,则由一至多行记录r组成的数据集称为记录集R;空间关键词索引建立步骤,对string构建B‑Tree;对记录集R中的flag建立倒排索引,其列表元素为关键词及与其相对应的id列表,得到域‑关键词倒排索引结构;空间关键词查询步骤,检索B‑Tree与域‑关键词倒排索引结构,获取满足查询条件的id,经过滤得到id候选集,并对候选集验证返回满足空间查询条件的位置点。本发明专利技术可高效支持任意空间范围的关键词查询。

A spatial keyword query method and device based on geohash and B-Tree

The present invention relates to a spatial keyword query method and device based on geohash and B Tree. The method includes: data preprocessing steps, encoding all position points in data set D into string with growing degree n, sorting each row of data in data set D according to dictionary order with string as sorting object, and generating numbering id, etc. Identify flag, each row of data is called a record r, and the data set consisting of one or more rows of records R is called recordset R; spatial keyword indexing steps are used to build B Tree for string; inverted index is used to build flag in recordset R, whose list elements are keywords and corresponding ID lists to get domain keywords. Inverted index structure; spatial keyword query steps, retrieve B Tree and domain keyword inverted index structure, obtain the ID that meets the query conditions, filter the ID candidate set, and validate the candidate set to return the location point that meets the spatial query conditions. The invention can efficiently support keyword queries in any spatial scope.

【技术实现步骤摘要】
一种基于geohash与B-Tree的空间关键词查询方法及装置
本专利技术涉及一种基于geohash与B-Tree的空间关键词查询方法及装置,属于空间关键词查询(SpatialKeywordquery)领域、基于位置的服务(Location-BasedService,LBS)等领域。
技术介绍
随着移动设备的普及、定位技术的快速发展、基于位置的服务运用的快速增长等,导致产生了大量具有位置属性的文本数据,即空间文本,如何从这些数据中快速获取所需信息是空间文本查询领域的核心问题。根据应用场景,空间文本查询可分为空间关键词查询与分发/订阅查询。为高效支持空间关键词查询则需高效的空间关键词索引结构。目前,国内外对空间文本索引结构进行了广泛而又深入的研究,这些索引结构通常组合空间索引结构与文本索引结构。根据所采用的空间索引结构的不同,可将其分为:基于R-Tree及其变体、grid/Quad-Tree、space-fillingcurve的空间文本索引;根据所采用的文本索引结构,可将其分为:基于倒排列表与签名文件的空间文本索引。空间索引与文本索引的组合方式分为:独立组合、松散组合、紧凑组合。据空间关键词查询领域国内外研究现状可知,R-Tree及其变体与倒排索引组合的索引结构是主流的空间关键词索引结构。R-Tree的变体以面积最小原则、重叠区域最小原则、周长最小原则和存储利用率较高原则为导向对R-Tree进行优化,但检索效率仍受R-Tree多路径查询问题的制约。
技术实现思路
为高效支持任意空间范围的关键词查询,本专利技术提供了一种基于geohash与B-Tree的空间关键词查询方法及装置。本专利技术的技术方案是:一种基于geohash与B-Tree的空间关键词查询方法,包括:数据预处理步骤,将数据集D中所有位置点编码成长度为n的字符串string,以string为排序对象按字典序对数据集D中的每行数据排序并生成编号id、标识flag,每一行数据称为一条记录r,则由一至多行记录r组成的数据集称为记录集R;其中,flag为string的唯一标识,用整形表示;空间关键词索引建立步骤,对string构建B-Tree;对记录集R中的flag建立倒排索引,其列表元素为关键词及与其相对应的id列表,得到域-关键词倒排索引结构;空间关键词查询步骤,检索B-Tree与域-关键词倒排索引结构,获取满足查询条件的id,经过滤得到id候选集,并对候选集验证返回满足空间查询条件的位置点。所述数据预处理步骤,具体包括如下步骤:步骤110:给定一个由一系列位置点、关键词集构成的数据集D,通过geohash空间编码方法将数据集D中的位置点编码成长度为n的字符串string;其中,位置点由纬度、经度数据构成;string即geohash编码,表示geohash精度表中n对应的范围区域;步骤120:以string为排序对象按字典序对数据集D中的每行数据排序并生成编号id、标识flag,每一行数据称为一条记录r,则由一至多行记录r组成的数据集称为记录集R;其中,R中每行数据r由id、纬度lat、经度lon、字符串string、关键词集items、string标识flag组成,items至少包含一个关键词item。所述空间关键词索引建立步骤,具体为:步骤210:对Rstr构建B-Tree,每个结点至少存储1个<string,id>;其中,Rstr表示R中所有string且保持其顺序性;步骤220:对Rf中每个独立元素flagi,构建倒排索引,并对Rpart中每个独立元素item,构建一个由包含item的rpart.id组成的倒排列表;其中,Rf表示R中flag集,rÎR;rpart由R中包含flagi的r.id与r.items组成,r.id表示r的id,r.items表示r的关键词集,Rpart表示由一至多行rpart组成的数据集。所述空间关键词查询步骤,具体包括如下步骤:步骤310:给定查询位置点q、查询距离范围d、查询关键词集qitems,根据geohash精度表选定与d相对应的geohash编码长度p,通过geohash空间编码方法将位置点q编码为p位长度的字符串qs,获取字符串qs周围8个区域的geohash编码,并将字符串qs及其周围8个区域的geohash编码分别作为查询域,共9个查询域;其中,p对应的距离误差不小于d且为最小值;qitems至少由一个关键词item构成;步骤320:检索B-Tree与域-关键词倒排索引结构返回满足查询条件的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:以任一查询域为例,根据检索B-Tree返回的id,在R中以此id为起始点向上向下双向搜索至不满足域查询条件,返回满足域查询条件的flag集;其中,域查询条件指R中string的前p位与查询域的geohash编码相同;步骤322:根据步骤321返回的flag分别检索域-关键词倒排索引结构,以任一flag为例,首先根据flag选取待检索的倒排列表,然后分别获取包含查询关键词的的id列表,并求交集,即为该flag所标识区域内满足查询条件的id;据前述方法分别获取每个flag所标识区域内满足查询条件的id,之后求并集,即为该查询域内满足查询条件的id;据上述方法,分别获取查询域内满足查询条件的id,之后求并集,即为9个查询域内满足查询条件的id。所述步骤330中,根据查询位置点q和查询距离范围d分别确定纬度范围与经度范围方本文档来自技高网...

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

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

【专利技术属性】
技术研发人员:沈兵林贾连印游进国丁家满张晶陈明鲜张崇德唐季林
申请(专利权)人:昆明理工大学
类型:发明
国别省市:云南,53

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

1