CN108628950A - 一种基于文本-域倒排的空间文本查询方法及装置 - Google Patents

一种基于文本-域倒排的空间文本查询方法及装置 Download PDF

Info

Publication number
CN108628950A
CN108628950A CN201810292840.8A CN201810292840A CN108628950A CN 108628950 A CN108628950 A CN 108628950A CN 201810292840 A CN201810292840 A CN 201810292840A CN 108628950 A CN108628950 A CN 108628950A
Authority
CN
China
Prior art keywords
text
longitude
latitude
record
domain
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810292840.8A
Other languages
English (en)
Other versions
CN108628950B (zh
Inventor
沈兵林
贾连印
丁家满
游进国
李晓武
左喻灏
胡俊涛
雷妍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kunming University of Science and Technology
Original Assignee
Kunming University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kunming University of Science and Technology filed Critical Kunming University of Science and Technology
Priority to CN201810292840.8A priority Critical patent/CN108628950B/zh
Publication of CN108628950A publication Critical patent/CN108628950A/zh
Application granted granted Critical
Publication of CN108628950B publication Critical patent/CN108628950B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明涉及一种基于文本‑域倒排的空间文本查询方法及装置,本发明方法包括:数据预处理步骤,将数据集D中所有位置点编码成长度为n的字符串,以该字符串为排序对象按字典序对数据集中的记录排序并生成编号id,每一行数据称为一条记录r,则由一至多行记录r组成的数据集称为记录集R;空间文本索引建立步骤,对记录集R中的文本建立倒排索引,倒排索引的列表元素为与字符串相对应的id列表,得到文本‑域倒排索引结构;布尔范围查询步骤,检索文本‑域倒排索引结构,获取满足查询条件的id,经过滤得到id候选集,并对候选集验证返回查询范围内的所有位置点。本发明采用文本‑域倒排索引结构可高效支持任意空间范围的文本查询。

Description

一种基于文本-域倒排的空间文本查询方法及装置
技术领域
本发明涉及一种基于文本-域倒排的空间文本查询方法及装置,属于空间文本查询(Spatial Keyword query)领域、基于位置的服务(Location-Based Service,LBS)等领域。
背景技术
随着互联网的发展、GPS移动设备的普及,导致产生了大量具有位置属性的文本数据,且数据量急剧增长,例如:具有文本描述的兴趣点(POIs)、具有位置标识的微博(Twitter)、具有位置与文本标识的图片信息(Flickr)、基于FourSquare的签到信息、含有位置属性的网页等。具有位置属性的文本数据称之为空间文本,空间数据与文本数据彼此赋予对方更详细的表述。面对这样的发展趋势,高效支持空间文本查询亟需高效的索引结构。空间文本查询指以位置、查询关键字为查询条件,返回满足查询条件的相关内容。空间文本查询分为:布尔kNN查询、布尔范围查询、top-k kNN查询与top-k 范围查询。
在空间文本查询领域,已提出许多索引结构,这些索引结构通常组合了空间索引结构与文本索引结构。根据所采用的空间索引结构的不同,可将其分为:基于R-Tree、grid、space-filling curve的空间文本索引;根据所采用的文本索引结构,可将其分为:基于倒排列表与签名文件的空间文本索引。空间索引与文本索引的组合方式为:独立组合、松散组合、紧凑组合。目前,主流的空间文本索引结构是R树家族与倒排列表组合的索引结构。R树采用对象的最小外包矩形(Minimum Bounding Rectangle, MBR)近似表示空间实体。如图8所示,从图中可看出,有许多重叠区域,如R16既属于R1又属于R2,但如图9所示,R6仅属于R2的孩子结点,存在多条查询路径。数据量越大,重叠区域将越多,直接降低查询效率。针对R树的多路径查询问题,R树变体对其进行了改进,检索性能虽有一定的提升,但仍受到R树多路径查询问题的限制。数据量较大时,尤其明显。
发明内容
为了解决现有技术中存在的问题,本发明提供了一种基于文本-域倒排的空间文本查询方法及装置。
本发明的技术方案是:一种基于文本-域倒排的空间文本查询方法,包括:
数据预处理步骤,将数据集D中所有位置点编码成长度为n的字符串,以该字符串为排序对象按字典序对数据集中的记录排序并生成编号id,每一行数据称为一条记录r,则由一至多行记录r组成的数据集称为记录集R;
空间文本索引建立步骤,对记录集R中的文本建立倒排索引,倒排索引的列表元素为与字符串相对应的id列表,得到文本-域倒排索引结构;
布尔范围查询步骤,检索文本-域倒排索引结构,获取满足查询条件的id,经过滤得到id候选集,并对候选集验证返回查询范围内的所有位置点。
所述数据预处理步骤,具体包括如下步骤:
步骤110:给定一个由一系列位置点、关键词集构成的数据集D,通过geohash空间编码方法将D中的位置点编码成长度为n的字符串geoStr;其中,位置点由纬度、经度数据构成;geoStr即geohash编码,表示geohash精度表中n对应的范围区域;
步骤120:以geoStr为排序对象按字典序对数据集中的记录排序并生成编号id,每一行数据称为一条记录r,则由一至多行记录r组成的数据集称为记录集R;其中,记录r由id、纬度lat、经度lon、字符串geoStr、关键词集items组成,items至少包含一个关键词item。
所述空间文本索引建立步骤,具体为:
步骤210:对Ritems中每个独立元素关键词item,构建一个由rpart组成的倒排索引;其中,Ritems表示记录集R中全部关键词,rpart由item包含于r.items的r.id、r.geoStr组成,r.items表示记录r的关键词集,r.id表示记录r的id,r.geoStr表示记录r的字符串,Rpart表示由一至多行rpart组成的记录集,rÎR;
步骤220:对RpgStrs中每个独立元素geoStr,构建一个由rpart.geoStr等于geoStr的rpart.id组成的倒排列表;其中,RpgStrs表示Rpart中全部geoStr,rpart.geoStr表示rpart的字符串,rpart.id表示rpart的id,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:在文本-域倒排索引结构上快速获取满足查询条件的id;其中,查询条件指查找距离位置点q不大于d且包含全部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:根据qitems检索文本-域倒排索引结构,选取与qitem对应的倒排列表;其中qitemÎqitems
步骤322:根据查询域对应的geohash编码分别检索步骤321选取的倒排列表,返回满足域查询条件的id列表,倒排列表均被检索后求交集,即为该查询域内满足布尔范围查询条件的id;据上述方法,分别获取查询域内满足布尔范围查询条件的id,之后求并集,即为9个查询域内满足布尔范围查询条件的id;其中,域查询条件指geoStr的前p位与查询域对应的geohash编码相同。
所述步骤330中,根据查询位置点q和查询距离范围d分别确定纬度范围与经度范围方法如下:纬度的最大值maxLat = lat + range,纬度的最小值minLat = lat - range;经度的最大值 maxLng = lon + lngR,经度的最小值minLng = lon - lngR;其中,lat表示查询位置点q的纬度值,lon 表示查询位置点q的经度值,range =180 / π * d /6372.797,lngR = range / cos(lat *π/ 180.0)。
一种基于文本-域倒排的空间文本查询装置,包括:
数据预处理装置,用于将数据集D中所有位置点编码成长度为n的字符串,以该字符串为排序对象按字典序对数据集中的记录排序并生成编号id,每一行数据称为一条记录r,则由一至多行记录r组成的数据集称为记录集R;
空间文本索引建立装置,用于对记录集R中的文本建立倒排索引,倒排索引的列表元素为与字符串相对应的id列表,得到文本-域倒排索引结构;
布尔范围查询装置,用于检索文本-域倒排索引结构,获取满足查询条件的id,经过滤得到id候选集,并对候选集验证返回查询范围内的所有位置点。
本发明的有益效果是:本发明采用文本-域倒排索引结构可高效支持任意空间范围的文本查询,如:高效支持美团、百度外卖、去哪儿等基于位置的应用软件提供的附近兴趣点(餐馆、酒店等)查询功能;能有效解决R-树的多路径查询问题;可直接部署于数据库管理系统、分布式存储系统;无缝融合分布式计算框架。
附图说明
图1是基于文本-域倒排的空间文本查询功能模块图;
图2是geohash精度表;
图3是Base32编码规则图;(注:(+ / -)表示加减);
图4是位置点转换为字符串图;
图5是记录集排序图;
图6是文本-域倒排索引结构图;
图7是根据查询关键词选择的文本-域索引图;
图8是基于最小外包矩形划分的空间区域图;
图9是基于图8构建的R-Tree图。
具体实施方式
实施例1:如图1-图9所示,一种基于文本-域倒排的空间文本查询方法,包括:
数据预处理步骤,将数据集D中所有位置点编码成长度为n的字符串,以该字符串为排序对象按字典序对数据集中的记录排序并生成编号id,每一行数据称为一条记录r,则由一至多行记录r组成的数据集称为记录集R;
空间文本索引建立步骤,对记录集R中的文本建立倒排索引,倒排索引的列表元素为与字符串相对应的id列表,得到文本-域倒排索引结构;
布尔范围查询步骤,检索文本-域倒排索引结构,获取满足查询条件的id,经过滤得到id候选集,并对候选集验证返回查询范围内的所有位置点。
进一步地,可以设置所述数据预处理步骤,具体包括如下步骤:
步骤110:给定一个由一系列位置点、关键词集构成的数据集D,通过geohash空间编码方法将D中的位置点编码成长度为n的字符串geoStr;其中,位置点由纬度、经度数据构成,表示POI(如:餐馆、酒店、公园等)的地理坐标,关键词集表示POI的文本属性(如:含名胜古迹的公园);geoStr即geohash编码,表示geohash精度表中n对应的范围区域;进一步地,可以设置所述步骤110,包括下列步骤111、112:
步骤111、根据geohash精度表(如图2所示),将geohash编码长度n设置为8,则经纬度位串分别为20位;
步骤112、通过geohash空间编码方法将D中的位置点转换成长度为8的字符串,实现方法如下:
示例:(19.596412 -99.219501)
首先将纬度范围(-90,90)平分成(-90,0)、(0,90)两个区间,如果目标纬度位于前一个区间,则编码为0,否则编码为1。因19.596412属于区间(0,90),所以编码为1;然后再将(0,90)分成(0,45)、(45,90)两个区间,因19.596412属于区间(0,45),所以编码为0;以此类推,直至位串长度为20。最终19.596412的编码为10011011110111101101。
经度也采取同样的方法,对范围(-180,180)依次细分至位串长度为20。最终-99.219501的编码为00111001011100011010。
接下来将经纬度位串进行合并,奇数位为纬度,偶数位为经度,得到编码0100101111000111011110110101011011011001。
最后,通过Base32编码(如图3所示)得到(19.5964412 -99.219501)的geohash编码为9g3rqpqt。
通过geohash算法将D中的位置点转换成长度为8的字符串,如图4所示。
步骤120:以geoStr为排序对象按字典序对数据集中的记录排序并生成编号id,每一行数据称为一条记录r,则由一至多行记录r组成的数据集称为记录集R;其中,记录r由id、纬度lat、经度lon、字符串geoStr、关键词集items组成,items至少包含一个关键词item。如图5所示。
进一步地,可以设置所述空间文本索引建立步骤,具体为:
步骤210:对Ritems中每个独立元素关键词item,构建一个由rpart组成的倒排索引;其中,Ritems表示记录集R中全部关键词,rpart由item包含于r.items的r.id、r.geoStr组成,r.items表示记录r的关键词集,r.id表示记录r的id,r.geoStr表示记录r的字符串,Rpart表示由一至多行rpart组成的记录集,rÎR;
步骤220:对RpgStrs中每个独立元素geoStr,构建一个由rpart.geoStr等于geoStr的rpart.id组成的倒排列表;其中,RpgStrs表示Rpart中全部geoStr,rpart.geoStr表示rpart的字符串,rpart.id表示rpart的id,rpartÎRpart
文本-域倒排索引结构如图6所示(因受图大小限制,故图中出现了省略号,省略号部分构建方法与其前面一致)。
进一步地,可以设置所述布尔范围查询步骤,具体包括如下步骤:
步骤310:给定查询位置点q、查询距离范围d、查询关键词集qitems,根据geohash精度表选定与查询距离范围d相对应的geohash编码长度p,通过geohash空间编码方法将位置点q编码为p位长度的字符串qs,获取字符串qs周围8个区域的geohash编码,并将字符串qs及其周围8个区域的geohash编码分别作为查询域,共9个查询域;其中,p对应的距离误差不小于d且为最小值;qitems至少由一个关键词item构成;进一步地,可以设置所述步骤310,具体包括步骤311、步骤312:
步骤311:给定查询位置点(19.596412 -99.219501)、查询距离范围500米、查询关键词{historicalSite,garden},需p对应的距离误差不小于500米且为最小值,则p值应设置为6,通过geohash算法将(19.596412 -99.219501)编码为6位长度的字符串9g3rqp;
步骤312、获取9g3rqp周围8个区域的geohash编码,并将9g3rqp及其周围8个区域作为查询域,方法如下:
9g3rqp的纬度位串为100110111101111,经度位串为001110010111000。
北方区域的geohash编码:纬度位串为100110111101111,经度位串为001110010111000+1=001110010111001,经纬度位串为
010010111100011101111011010111,geohash编码为9g3rqr;
东北区域的geohash编码:纬度位串为100110111101111+1=100110111110000,经度位串为001110010111000+1=001110010111001,经纬度位串为
010010111100011101111110000010,geohash编码为9g3rw2;
东方区域的geohash编码:纬度位串为100110111101111+1=100110111110000,经度位为001110010111000,经纬度位串为010010111100011101111110000000,geohash编码为9g3rw0;
东南区域的geohash编码:纬度位串为100110111101111+1=100110111110000,经度位串为001110010111000-1=001110010110111,经纬度位串为
010010111100011101111100101010,geohash编码为9g3rtb;
南方区域的geohash编码:纬度位串为100110111101111,经度位串为001110010111000-1=001110010110111,经纬度位串为
010010111100011101111001111111,geohash编码为9g3rmz;
西南区域的geohash编码:纬度位串为100110111101111-1=100110111101110,经度位串为001110010111000-1=001110010110111,经纬度位串为
010010111100011101111001111110,geohash编码为9g3rmy;
西方区域的geohash编码:纬度位串为100110111101111-1=100110111101110,经度位为001110010111000,经纬度位串为010010111100011101111011010100,geohash编码为9g3rqn;
西北区域的geohash编码:纬度位串为100110111101111-1=100110111101110,经度位串为001110010111000+1=001110010111001,经纬度位串为
010010111100011101111011010110,geohash编码为9g3rqq。
9g3rqp周围的8个区域为:9g3rqr、9g3rw2、9g3rw0、9g3rtb、9g3rmz、9g3rmy、9g3rqn、9g3rqq;
步骤320:在文本-域倒排索引结构上快速获取满足查询条件的id;其中,查询条件指查找距离位置点q不大于d且包含全部qitems的id,即布尔范围查询;进一步地,可以设置所述步骤320,具体包括步骤321、步骤322:
步骤321、根据查询关键词{historicalSite,garden}检索文本-域索引结构,选取与关键词historicalSite与garden对应的倒排列表,如图7所示(箭头指向);
步骤322、根据查询域对应的geohash编码分别检索步骤321选取的倒排列表,返回满足域查询条件的id列表,倒排列表均被检索后求交集,即为该查询域内满足布尔范围查询条件的id;据上述方法,分别获取查询域
{9g3rqp,9g3rqr,9g3rw2,9g3rw0,9g3rtb,9g3rmz,9g3rmy,9g3rqn,9g3rqq}内满足布尔范围查询条件的id,之后求并集,即为9个查询域内满足布尔范围查询条件的id;其中,域查询条件指geoStr的前6位与查询域对应的geohash编码相同。
以9g3rqp查询域为例:
根据9g3rqp检索步骤321选取的倒排列表,以“geoStr的前6位与9g3rqp相同”为查询条件,针对查询关键词“historicalSite”,返回的id集为{15,16,18,21};针对查询关键词“garden”,返回的id集为{15,16,18,21},交集为{15,16,18,21},故9g3rqp查询域内满足布尔范围查询条件的id为{15,16,18,21}。
由上述可得,针对查询域{9g3rqr,9g3rw2,9g3rtb,9g3rmz,9g3rqq},任一查询域内,不存在满足布尔范围查询条件的 id;9g3rw0查询域内满足布尔范围查询条件的id为{27};9g3rmy查询域内满足布尔范围查询条件的id为{9};9g3rqn查询域内满足布尔范围查询条件的id为{11}。
由上可知,9个查询域内满足布尔范围查询条件的id为:
{9,11,15,16,18,21,27};
步骤330、根据查询位置点(19.596412 -99.219501)和查询距离范围500m确定纬度范围与经度范围,如下所示:
step1: range =180 ÷ 3.141593 × 0.5 ÷ 6372.797 = 0.004495
step2: lngR = 0.004495 ÷ cos(19.596412 × 3.141593 ÷ 180.0) = 0.004771
step3: 19.596412 + 0.004495 = 19.600907(纬度的最大值)
step4: 19.596412 - 0.004495 = 19.591917(纬度的最小值)
step5: -99.219501 + 0.004771 = -99.214730(经度的最大值)
step6: -99.219501 - 0.004771 = -99.224272(经度的最小值)
由上可知,纬度范围为[19.591917,19.600907],经度范围为
[-99.224272,-99.214730]。根据经纬度范围对9个查询域内的id{9,11,15,16,18,21,27}进行过滤并返回经纬度范围内的位置点。如:id为9时,其纬经度为(19.589223 -99.23521),19.589223不位于[19.591917,19.600907]内,故过滤id为9的位置点。经过滤后,候选集为{15,18,21}。
步骤340、计算候选集{15,18,21}中ID对应的位置点(19.596412 -99.219501)的距离dq,若dq<=500,则返回该位置点,实现过程如下所示:
查询条件:(19.596412 -99.219501),500米;
距离计算公式:设A(x 1,y 1),B(x 2,y 2),则 (1);
根据公式(1)依次计算位置点集中的位置点与(19.596412 -99.219501)的距离,返回不大于500米的位置点,经计算,满足要求的位置点集为{{19.596261 -99.223194},{19.596776 -99.220447},{19.594354 -99.220102}}。
故满足查询范围内的位置点为{{19.596261 -99.223194},{19.596776 -99.220447},{19.594354 -99.220102}}。
一种基于文本-域倒排的空间文本查询装置,包括:
数据预处理装置,用于将数据集D中所有位置点编码成长度为n的字符串,以该字符串为排序对象按字典序对数据集中的记录排序并生成编号id,每一行数据称为一条记录r,则由一至多行记录r组成的数据集称为记录集R;
空间文本索引建立装置,用于对记录集R中的文本建立倒排索引,倒排索引的列表元素为与字符串相对应的id列表,得到文本-域倒排索引结构;
布尔范围查询装置,用于检索文本-域倒排索引结构,获取满足查询条件的id,经过滤得到id候选集,并对候选集验证返回查询范围内的所有位置点。
上面结合图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。

Claims (10)

1.一种基于文本-域倒排的空间文本查询方法,其特征在于:包括:
数据预处理步骤,将数据集D中所有位置点编码成长度为n的字符串,以该字符串为排序对象按字典序对数据集中的记录排序并生成编号id,每一行数据称为一条记录r,则由一至多行记录r组成的数据集称为记录集R;
空间文本索引建立步骤,对记录集R中的文本建立倒排索引,倒排索引的列表元素为与字符串相对应的id列表,得到文本-域倒排索引结构;
布尔范围查询步骤,检索文本-域倒排索引结构,获取满足查询条件的id,经过滤得到id候选集,并对候选集验证返回查询范围内的所有位置点。
2.根据权利要求1所述的基于文本-域倒排的空间文本查询方法,其特征在于:所述数据预处理步骤,具体包括如下步骤:
步骤110:给定一个由一系列位置点、关键词集构成的数据集D,通过geohash空间编码方法将D中的位置点编码成长度为n的字符串geoStr;其中,位置点由纬度、经度数据构成;geoStr即geohash编码,表示geohash精度表中n对应的范围区域;
步骤120:以geoStr为排序对象按字典序对数据集中的记录排序并生成编号id,每一行数据称为一条记录r,则由一至多行记录r组成的数据集称为记录集R;其中,记录r由id、纬度lat、经度lon、字符串geoStr、关键词集items组成,items至少包含一个关键词item。
3.根据权利要求1所述的基于文本-域倒排的空间文本查询方法,其特征在于:所述空间文本索引建立步骤,具体为:
步骤210:对Ritems中每个独立元素关键词item,构建一个由rpart组成的倒排索引;其中,Ritems表示记录集R中全部关键词,rpart由item包含于r.items的r.id、r.geoStr组成,r.items表示记录r的关键词集,r.id表示记录r的id,r.geoStr表示记录r的字符串,Rpart表示由一至多行rpart组成的记录集,rÎR;
步骤220:对RpgStrs中每个独立元素geoStr,构建一个由rpart.geoStr等于geoStr的rpart.id组成的倒排列表;其中,RpgStrs表示Rpart中全部geoStr,rpart.geoStr表示rpart的字符串,rpart.id表示rpart的id,rpartÎRpart
4.根据权利要求1所述的基于文本-域倒排的空间文本查询方法,其特征在于:所述布尔范围查询步骤,具体包括如下步骤:
步骤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;其中,查询条件指查找距离位置点q不大于d且包含全部qitems的id,即布尔范围查询;
步骤330:根据查询位置点q和查询距离范围d分别确定纬度范围与经度范围,根据经纬度范围对与步骤320返回的id相对应的位置点进行筛选,最终得到id候选集;
步骤340:计算候选集中id对应的位置点到查询位置点q的距离dq:若dq≤d,则返回该位置点,否则,不返回。
5.根据权利要求2所述的基于文本-域倒排的空间文本查询方法,其特征在于:所述步骤110,包括下列步骤111、112:
步骤111:根据geohash精度表确定geohash编码长度n;
步骤112:通过geohash空间编码方法将所有位置点编码成长度为n的字符串。
6.根据权利要求2或4所述的基于文本-域倒排的空间文本查询方法,其特征在于:通过geohash空间编码方法将位置点编码成字符串,具体为:首先,将经纬度范围看作二维平面坐标系;然后,采用二分法对经度/纬度进行划分,根据位置点经度/纬度在划分结果中的位置分别赋值0或1,直到划分次数满足对应的经/纬度位串的位数;之后,通过位交错方法合并经度位串与纬度位串;最后,通过Base32编码将经纬度位串编码为相应长度的字符串。
7.根据权利要求4所述的基于文本-域倒排的空间文本查询方法,其特征在于:所述步骤310中,获取qs周围8个区域的geohash编码的方法:根据qs的经纬度位串,东/西方向的区域编码:经度位串不变,纬度位串加/减1,通过位交错方法得到该区域的经纬度位串;南/北方向的区域编码:纬度位串不变,经度位串减/加1,通过位交错方法得到该区域的经纬度位串;东北/西南方向的区域编码,经纬度位串均加/减1,通过位交错方法得到该区域的经纬度位串;东南方向的区域编码:纬度位串加1,经度位串减1,通过位交错方法得到该区域的经纬度位串;西北方向的区域编码:纬度位串减1,经度位串加1,通过位交错方法得到该区域的经纬度位串;之后,通过Base32编码将以上8个位串进行编码即可获得qs周围8个区域的geohash编码。
8.根据权利要求4所述的基于文本-域倒排的空间文本查询方法,其特征在于:所述步骤320具体为:
步骤321:根据qitems检索文本-域倒排索引结构,选取与qitem对应的倒排列表;其中qitemÎqitems
步骤322:根据查询域对应的geohash编码分别检索步骤321选取的倒排列表,返回满足域查询条件的id列表,倒排列表均被检索后求交集,即为该查询域内满足布尔范围查询条件的id;据上述方法,分别获取查询域内满足布尔范围查询条件的id,之后求并集,即为9个查询域内满足布尔范围查询条件的id;其中,域查询条件指geoStr的前p位与查询域对应的geohash编码相同。
9.根据权利要求4所述的基于文本-域倒排的空间文本查询方法,其特征在于:所述步骤330中,根据查询位置点q和查询距离范围d分别确定纬度范围与经度范围方法如下:纬度的最大值maxLat = lat + range,纬度的最小值minLat = lat - range;经度的最大值maxLng = lon + lngR,经度的最小值minLng = lon - lngR;其中,lat表示查询位置点q的纬度值,lon 表示查询位置点q的经度值,range =180 / π * d / 6372.797,lngR = range/ cos(lat *π/ 180.0)。
10.一种基于文本-域倒排的空间文本查询装置,其特征在于:包括:
数据预处理装置,用于将数据集D中所有位置点编码成长度为n的字符串,以该字符串为排序对象按字典序对数据集中的记录排序并生成编号id,每一行数据称为一条记录r,则由一至多行记录r组成的数据集称为记录集R;
空间文本索引建立装置,用于对记录集R中的文本建立倒排索引,倒排索引的列表元素为与字符串相对应的id列表,得到文本-域倒排索引结构;
布尔范围查询装置,用于检索文本-域倒排索引结构,获取满足查询条件的id,经过滤得到id候选集,并对候选集验证返回查询范围内的所有位置点。
CN201810292840.8A 2018-04-04 2018-04-04 一种基于文本-域倒排的空间文本查询方法及装置 Active CN108628950B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810292840.8A CN108628950B (zh) 2018-04-04 2018-04-04 一种基于文本-域倒排的空间文本查询方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810292840.8A CN108628950B (zh) 2018-04-04 2018-04-04 一种基于文本-域倒排的空间文本查询方法及装置

Publications (2)

Publication Number Publication Date
CN108628950A true CN108628950A (zh) 2018-10-09
CN108628950B CN108628950B (zh) 2022-07-19

Family

ID=63704801

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810292840.8A Active CN108628950B (zh) 2018-04-04 2018-04-04 一种基于文本-域倒排的空间文本查询方法及装置

Country Status (1)

Country Link
CN (1) CN108628950B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111353008A (zh) * 2019-12-26 2020-06-30 中科星图股份有限公司 一种北斗位置流数据实时空间聚合方法

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080306911A1 (en) * 2007-06-08 2008-12-11 Wayne Loofbourrow Ordered index
CN102201001A (zh) * 2011-04-29 2011-09-28 西安交通大学 基于倒排技术的快速检索方法
CN103092844A (zh) * 2011-10-28 2013-05-08 腾讯科技(深圳)有限公司 一种索引建立方法和系统、搜索方法和系统
CN103150309A (zh) * 2011-12-07 2013-06-12 清华大学 一种空间方向感知地图兴趣点搜索方法和系统
CN104794237A (zh) * 2015-05-07 2015-07-22 中国人民大学 网页信息处理方法及装置
WO2015142369A1 (en) * 2014-03-20 2015-09-24 Facebook, Inc. Polygon-based indexing of places
CN105404675A (zh) * 2015-11-20 2016-03-16 苏州大学 Ranked反近邻空间关键字查询方法及装置
CN106156195A (zh) * 2015-04-20 2016-11-23 阿里巴巴集团控股有限公司 基于位置信息的搜索方法及其系统
CN107194560A (zh) * 2017-05-12 2017-09-22 东南大学 Lbsn中基于好友聚类的社交搜索评价方法
CN107766433A (zh) * 2017-09-19 2018-03-06 昆明理工大学 一种基于Geo‑BTree的范围查询方法及装置
CN107798054A (zh) * 2017-09-04 2018-03-13 昆明理工大学 一种基于Trie的范围查询方法及装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080306911A1 (en) * 2007-06-08 2008-12-11 Wayne Loofbourrow Ordered index
CN102201001A (zh) * 2011-04-29 2011-09-28 西安交通大学 基于倒排技术的快速检索方法
CN103092844A (zh) * 2011-10-28 2013-05-08 腾讯科技(深圳)有限公司 一种索引建立方法和系统、搜索方法和系统
CN103150309A (zh) * 2011-12-07 2013-06-12 清华大学 一种空间方向感知地图兴趣点搜索方法和系统
WO2015142369A1 (en) * 2014-03-20 2015-09-24 Facebook, Inc. Polygon-based indexing of places
CN106156195A (zh) * 2015-04-20 2016-11-23 阿里巴巴集团控股有限公司 基于位置信息的搜索方法及其系统
CN104794237A (zh) * 2015-05-07 2015-07-22 中国人民大学 网页信息处理方法及装置
CN105404675A (zh) * 2015-11-20 2016-03-16 苏州大学 Ranked反近邻空间关键字查询方法及装置
CN107194560A (zh) * 2017-05-12 2017-09-22 东南大学 Lbsn中基于好友聚类的社交搜索评价方法
CN107798054A (zh) * 2017-09-04 2018-03-13 昆明理工大学 一种基于Trie的范围查询方法及装置
CN107766433A (zh) * 2017-09-19 2018-03-06 昆明理工大学 一种基于Geo‑BTree的范围查询方法及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CHENGYUAN ZHANG等: "Inverted Linear Quadtree: Efficient Top K Spatial Keyword Search", 《IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING》 *
刘思彤: "空间文本数据的查询处理技术研究", 《中国博士学位论文全文数据库 (信息科技辑)》 *
张榆等: "一种基于HBase的高效空间关键字查询策略", 《小型微型计算机系统》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111353008A (zh) * 2019-12-26 2020-06-30 中科星图股份有限公司 一种北斗位置流数据实时空间聚合方法
CN111353008B (zh) * 2019-12-26 2023-07-25 中科星图股份有限公司 一种北斗位置流数据实时空间聚合方法

Also Published As

Publication number Publication date
CN108628950B (zh) 2022-07-19

Similar Documents

Publication Publication Date Title
CN108846013B (zh) 一种基于geohash与Patricia Trie的空间关键词查询方法及装置
CN107798054B (zh) 一种基于Trie的范围查询方法及装置
Rocha-Junior et al. Top-k spatial keyword queries on road networks
CN103927933B (zh) 一种海量移动目标渲染的方法及装置
US7606687B2 (en) Proximity search methods using tiles to represent geographical zones
CN103150309B (zh) 一种空间方向感知地图兴趣点搜索方法和系统
US7634465B2 (en) Indexing and caching strategy for local queries
CN107766433A (zh) 一种基于Geo‑BTree的范围查询方法及装置
US20150356088A1 (en) Tile-based geocoder
CN107153711A (zh) 地理信息数据处理方法及装置
CN111078807B (zh) 位置查询方法、装置、计算机设备及存储介质
CN104394509A (zh) 一种高效的差分扰动位置隐私保护系统及方法
CN104376112B (zh) 一种路网上空间关键字检索的方法
CN108776666A (zh) 一种基于关键词倒排与Trie的空间关键词查询方法及装置
WO2012082859A1 (en) High efficiency prefix search algorithm supporting interactive, fuzzy search on geographical structured data
CN108763522A (zh) Poi检索排序方法、装置及计算机可读存储介质
CN108549690A (zh) 基于空间距离约束的空间关键字查询方法及系统
CN103914456A (zh) 一种数据存储方法和系统
CN109885638B (zh) 一种三维立体空间索引方法及系统
CN105843948B (zh) 一种移动环境下基于索引技术的景点智能推荐方法
CN106649425A (zh) 一种顾及空间邻近性的矢量空间数据编码方法
CN108628950A (zh) 一种基于文本-域倒排的空间文本查询方法及装置
CN108776667B (zh) 一种基于geohash与B-Tree的空间关键词查询方法及装置
CN101882164A (zh) 用于存储多维知识的数据仓库模型
CN104123357A (zh) 一种查询卡口的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant