CN102831112A - 一种基于空间索引的搜索结果缓存方法和系统 - Google Patents

一种基于空间索引的搜索结果缓存方法和系统 Download PDF

Info

Publication number
CN102831112A
CN102831112A CN2011101591310A CN201110159131A CN102831112A CN 102831112 A CN102831112 A CN 102831112A CN 2011101591310 A CN2011101591310 A CN 2011101591310A CN 201110159131 A CN201110159131 A CN 201110159131A CN 102831112 A CN102831112 A CN 102831112A
Authority
CN
China
Prior art keywords
search
grid
unit
center point
point coordinate
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
CN2011101591310A
Other languages
English (en)
Other versions
CN102831112B (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.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201110159131.0A priority Critical patent/CN102831112B/zh
Publication of CN102831112A publication Critical patent/CN102831112A/zh
Application granted granted Critical
Publication of CN102831112B publication Critical patent/CN102831112B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于空间索引的搜索结果缓存方法,将平面区域划分为多个网格,还包括:将根据搜索请求进行搜索得到的搜索结果进行缓存,得到缓存结果;根据搜索请求中的用户坐标生成对应的网格中心点坐标;根据网格中心点坐标和搜索请求中的关键字生成搜索关键字;将搜索关键字作为缓存关键字与缓存结果关联。本发明还公开了一种基于空间索引的搜索结果缓存系统,通过本发明能够提高缓存结果命中率。

Description

一种基于空间索引的搜索结果缓存方法和系统
技术领域
本发明涉及搜索技术,特别是指一种基于空间索引的搜索结果缓存方法和系统。
背景技术
在基于位置的服务(LBS,Location Based Service)应用中,在周边n公里范围内搜索特定关键字的地标是比较常见的功能。在实际应用中,用户使用LBS应用的请求量较大,因此,需要增加缓存来提高系统的响应速度。当用户首次搜索某个地标时,将搜索得到的结果(地标的位置信息)进行缓存,即缓存结果,根据用户搜索请求的用户坐标+关键字生成缓存关键字,以关联上述缓存结果;当用户再次搜索该地标时,根据用户坐标+关键字生成搜索关键字,则将搜索关键字与缓存关键字直接匹配就可直接得到搜索的结果,即得到缓存结果。
但是,上述方案的问题在于缓存结果命中率较低,所谓缓存结果命中率是指根据搜索关键字匹配到缓存结果的成功率。由于缓存关键字是根据用户坐标生成的,因此,用户再次搜索相同的地标时,只有在与上次相同坐标点上发出搜索请求,这样生成的搜索关键字才能匹配到缓存关键字,命中缓存结果,这必然导致缓存结果命中率低的问题。
发明内容
有鉴于此,本发明的主要目的在于提供一种基于空间索引的搜索结果缓存方法和系统,以解决现有LBS应用中缓存结果命中率低的问题。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种基于空间索引的搜索结果缓存方法,将平面区域划分为多个网格,该方法还包括:
将根据搜索请求进行搜索得到的搜索结果进行缓存,得到缓存结果;
根据所述搜索请求中用户坐标生成对应的网格中心点坐标;
根据所述网格中心点坐标和所述搜索请求中的关键字生成搜索关键字,并将所述搜索关键字作为缓存关键字与所述缓存结果关联。
其中,所述网格为正方形。
根据所述搜索请求中的用户坐标生成对应的网格中心点坐标,包括:
Figure BDA0000068215000000022
其中,所述X为用户坐标的横坐标,单位为m;所述Y为用户坐标的纵坐标,单位为m;所述网格边长单位为m;所述Xo为网格中心点坐标的横坐标,单位为m;所述Yo为网格中心点坐标的纵坐标,单位为m。
根据所述网格中心点坐标和所述搜索请求中的关键字生成搜索关键字,包括:
根据所述网格中心点坐标生成网格标识(SpaceID)为:
所述网格系数=100000/(网格边长/1000);
其中,所述Xo为网格中心点坐标的横坐标,单位为m;所述Yo为网格中心点坐标的纵坐标,单位为m;所述网格边长单位为m;所述搜索关键字由所述SpaceID和所述关键字组成。
将所述搜索关键字与所述缓存结果关联之后,该方法还包括:
根据搜索请求中的用户坐标和关键字生成搜索关键字;
将所述搜索关键字和所述缓存关键字进行匹配,匹配成功时,命中缓存结果成功;匹配失败时,命中缓存结果失败,返回缓存搜索结果。
所述根据搜索请求中的用户坐标和关键字生成搜索关键字,包括:
根据所述用户坐标生成SpaceID:
Figure BDA0000068215000000024
所述网格系数=100000/(网格边长/1000)。
本发明还提供了一种基于空间索引的搜索结果缓存系统,该系统包括:
网格划分单元,用于将平面区域划分为多个网格;
搜索单元,用于将根据搜索请求进行搜索得到的搜索结果;
缓存单元,用于将所述搜索结果进行缓存,得到缓存结果;还用于根据所述搜索请求中的用户坐标生成对应的网格中心点坐标;并根据所述网格中心点坐标和所述搜索请求中的关键字生成搜索关键字,将所述搜索关键字作为缓存关键字与所述缓存结果关联。
所述网格为正方形。
所述缓存单元,还用于根据所述搜索请求中的用户坐标生成对应的网格中心点坐标时,得到网格中心点坐标为:
Figure BDA0000068215000000031
Figure BDA0000068215000000032
其中,所述X为用户坐标的横坐标,单位为m;所述Y为用户坐标的纵坐标,单位为m;所述网格边长单位为m;所述Xo为网格中心点坐标的横坐标,单位为m;所述Yo为网格中心点坐标的纵坐标,单位为m。
所述缓存单元,还用于根据所述网格中心点坐标生成SpaceID:
Figure BDA0000068215000000033
所述网格系数=100000/(网格边长/1000);
所述缓存单元,还用于将所述SpaceID和所述关键字组成搜索关键字。
本发明基于空间索引的搜索结果缓存方法和系统,根据搜索请求中的用户坐标生成对应的网格中心点坐标;并根据生成的网格中心点坐标和搜索请求中的关键字生成搜索关键字,将搜索关键字作为缓存关键字与缓存结果关联,如此,就能实现将某一距离范围内(例如一个网格)的搜索需求都定位到同一个坐标点(网格中心点坐标),那么,用户当前的坐标点只要是与网格中心点坐标在一个网格内,用户搜索相同的地标时,就可以命中缓存结果,从而提高缓存结果命中率。
附图说明
图1为本发明基于空间索引的搜索结果缓存方法实施例一的流程图;
图2为本发明基于空间索引的搜索结果缓存方法实施例二的流程图;
图3为本发明基于空间索引的搜索结果缓存系统结构示意图。
具体实施方式
本发明基于空间索引的搜索结果缓存方法的关键在于:将某一距离范围内的查询需求都定位到同一个坐标点,从而提高缓存命中率。
本发明利用地标索引中网格索引的思想来处理坐标,即:将平面区域划分为网格,并对网格进行编号,用网格中心点坐标的查询结果代替网格内所有坐标的查询结果。
如图1所示,本发明基于空间索引的搜索结果缓存方法,包括:
步骤101,将根据搜索请求进行搜索得到的搜索结果进行缓存,得到缓存结果。一般,首次搜索时,根据搜索请求到逻辑层进行搜索得到搜索结果,此处可以采用现有搜索技术,不再赘述。将搜索结果进行缓存,即为缓存结果。
步骤102,根据搜索请求中用户坐标生成对应的网格中心点坐标。
该步骤即是将某一距离范围内的搜索需求都定位到同一个坐标点,即网格中心点坐标。
其中,本发明对平面区域划分得到的网格为正方形,网格边长可以根据实际需要设定,如果要求搜索的精度比较高,则可以选择较小的网格边长。
具体的,生成网格中心点坐标,包括:
Figure BDA0000068215000000041
其中,X为搜索请求中用户坐标的横坐标,单位为m;Y为搜索请求中用户坐标的纵坐标,单位为m;网格边长单位为m;Xo为网格中心点坐标的横坐标,单位为m;Yo为网格中心点坐标的纵坐标,单位为m。
步骤103,根据网格中心点坐标和搜索请求中的关键字生成搜索关键字。
具体的,该步骤的实现包括:
首先,根据网格中心点坐标生成网格标识(SpaceID):
Figure BDA0000068215000000051
其中,网格系数=100000/(网格边长/1000);
在本发明的LBS应用系统的数据库中,所有横坐标和纵坐标的值均小于99999km,因此,网格系数中的100000为坐标值的上限,单位为km。
上述Xo即为网格中心点坐标的横坐标,单位为m;Yo即为网格中心点坐标的纵坐标,单位为m;网格边长单位为m。
搜索关键字由SpaceID和搜索请求中的关键字组成,根据需要可以任意设置搜索关键字的表示方式,例如可以采用如下的表示方式:SpaceID_关键字。
步骤104,将搜索关键字作为缓存关键字与缓存结果关联。
将搜索关键字作为缓存关键字与缓存结果关联起来,以备后续搜索使用。
基于图1缓存方法的后续搜索流程如图2所示,包括:
步骤105,根据搜索请求中的用户坐标和关键字生成搜索关键字。
首先,生成网格ID:网格系数=100000/(网格边长/1000);
其中,X为用户坐标的横坐标,单位为m;Y为用户坐标的纵坐标,单位为m;网格边长单位为m;
由SpaceID和关键字组成搜索关键字,该步骤的搜索关键字与步骤104的缓存关键字采用相同的表示方式。
步骤106~107,将搜索关键字和缓存关键字进行匹配,匹配成功时,命中缓存结果,将缓存结果显示给用户;匹配失败时,命中缓存结果失败,返回步骤101,作为首次搜索处理。
下面通过具体实施例来说明本发明技术方案的具体实现,本实施例包括以下流程:
1、将平面区域划分为网格,网格边长为1000m。
2、用户首次对地标A进行搜索,发出搜索请求1,根据搜索请求1到逻辑层进行搜索得到搜索结果、即地标A的位置信息,进行缓存,得到缓存结果1。
3、根据搜索请求1中的用户坐标(200m,400m)生成对应的网格中心点坐标为:
Figure BDA0000068215000000061
Figure BDA0000068215000000062
则用户坐标(200m,400m)对应的网格中心点坐标为:(500m,500m)。
4、根据网格中心点坐标生成SpaceID,具体的:
网格系数=100000/(1000/1000)=100000;
Figure BDA0000068215000000063
然后,由SpaceID(0)和关键字(A)生成搜索关键字1为:0_A。
5、将搜索关键字1(0_A)与缓存结果1进行关联。
6、假设用户又一次发出了搜索请求2,搜索请求2中的用户坐标为(600m,800m),关键字为A,则
Figure BDA0000068215000000064
搜索关键字2为:0A。
7、可见,搜索关键字2与缓存关键字1完全匹配,则命中缓存结果1,可以直接将缓存结果1反馈给用户,无需到逻辑层进行搜索,提高了搜索效率。
另外,通过上述的缓存过程和搜索过程可知,用户当前的坐标点只要是与网格中心点坐标(500m,500m)在同一个网格内,用户搜索地标A时,就可以命中缓存结果,从而提高命中率。
8、假设用户又一次发出了搜索请求3,搜索请求3中的用户坐标为(1500m,800m),关键字为B,则
Figure BDA0000068215000000065
搜索关键字3为:100000_B。
9、可见,搜索关键字3与缓存关键字1不匹配,则命中失败,将搜索请求3以首次搜索对待,根据搜索请求3到逻辑层进行搜索得到搜索结果,即:地标B的位置信息进行缓存,得到缓存结果3。
10、经过计算,用户坐标(1500m,800m)对应的网格中心点坐标为(1500m,500m);
Figure BDA0000068215000000071
搜索关键字3为:100000_B。
11、将搜索关键字3(100000_B)与缓存结果3进行关联。
为了实现上述搜索结果缓存方法,本发明还提供了一种基于空间索引的搜索结果缓存系统,如图3所示,该系统包括:
网格划分单元,用于将平面区域划分为多个网格;
搜索单元,用于将根据搜索请求进行搜索得到的搜索结果;
缓存单元,用于将搜索结果进行缓存,得到缓存结果;还用于根据搜索请求中的用户坐标生成对应的网格中心点坐标;并根据网格中心点坐标和搜索请求中的关键字生成搜索关键字,将搜索关键字作为缓存关键字与缓存结果关联;
其中,网格为正方形。
缓存单元,还用于根据搜索请求中的用户坐标生成对应的网格中心点坐标时,得到网格中心点坐标为:
Figure BDA0000068215000000073
其中,X为用户坐标的横坐标,单位为m;Y为用户坐标的纵坐标,单位为m;网格边长单位为m;Xo为网格中心点坐标的横坐标,单位为m;Yo为网格中心点坐标的纵坐标,单位为m。
缓存单元,还用于根据网格中心点坐标生成SpaceID:
Figure BDA0000068215000000074
Figure BDA0000068215000000075
网格系数=100000/(网格边长/1000);
其中,Xo为网格中心点坐标的横坐标,单位为m;Yo为网格中心点坐标的纵坐标,单位为m;网格边长单位为m。
缓存单元,还用于将SpaceID和关键字组成搜索关键字。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (10)

1.一种基于空间索引的搜索结果缓存方法,其特征在于,将平面区域划分为多个网格,该方法还包括:
将根据搜索请求进行搜索得到的搜索结果进行缓存,得到缓存结果;
根据所述搜索请求中用户坐标生成对应的网格中心点坐标;
根据所述网格中心点坐标和所述搜索请求中的关键字生成搜索关键字,并将所述搜索关键字作为缓存关键字与所述缓存结果关联。
2.根据权利要求1所述基于空间索引的搜索结果缓存方法,其特征在于,所述网格为正方形。
3.根据权利要求2所述基于空间索引的搜索结果缓存方法,其特征在于,根据所述搜索请求中的用户坐标生成对应的网格中心点坐标,包括:
Figure FDA0000068214990000011
Figure FDA0000068214990000012
其中,所述X为用户坐标的横坐标,单位为m;所述Y为用户坐标的纵坐标,单位为m;所述网格边长单位为m;所述Xo为网格中心点坐标的横坐标,单位为m;所述Yo为网格中心点坐标的纵坐标,单位为m。
4.根据权利要求3所述基于空间索引的搜索结果缓存方法,其特征在于,根据所述网格中心点坐标和所述搜索请求中的关键字生成搜索关键字,包括:
根据所述网格中心点坐标生成网格标识(SpaceID)为:
Figure FDA0000068214990000013
所述网格系数=100000/(网格边长/1000);
其中,所述Xo为网格中心点坐标的横坐标,单位为m;所述Yo为网格中心点坐标的纵坐标,单位为m;所述网格边长单位为m;所述搜索关键字由所述SpaceID和所述关键字组成。
5.根据权利要求4所述基于空间索引的搜索结果缓存方法,其特征在于,将所述搜索关键字与所述缓存结果关联之后,该方法还包括:
根据搜索请求中的用户坐标和关键字生成搜索关键字;
将所述搜索关键字和所述缓存关键字进行匹配,匹配成功时,命中缓存结果成功;匹配失败时,命中缓存结果失败,返回缓存搜索结果。
6.根据权利要求5所述基于空间索引的搜索结果缓存方法,其特征在于,所述根据搜索请求中的用户坐标和关键字生成搜索关键字,包括:
根据所述用户坐标生成SpaceID:
Figure FDA0000068214990000021
所述网格系数=100000/(网格边长/1000)。
7.一种基于空间索引的搜索结果缓存系统,其特征在于,该系统包括:
网格划分单元,用于将平面区域划分为多个网格;
搜索单元,用于将根据搜索请求进行搜索得到的搜索结果;
缓存单元,用于将所述搜索结果进行缓存,得到缓存结果;还用于根据所述搜索请求中的用户坐标生成对应的网格中心点坐标;并根据所述网格中心点坐标和所述搜索请求中的关键字生成搜索关键字,将所述搜索关键字作为缓存关键字与所述缓存结果关联。
8.根据权利要求7所述基于空间索引的搜索结果缓存系统,其特征在于,所述网格为正方形。
9.根据权利要求8所述基于空间索引的搜索结果缓存系统,其特征在于,
所述缓存单元,还用于根据所述搜索请求中的用户坐标生成对应的网格中心点坐标时,得到网格中心点坐标为:
Figure FDA0000068214990000022
Figure FDA0000068214990000023
其中,所述X为用户坐标的横坐标,单位为m;所述Y为用户坐标的纵坐标,单位为m;所述网格边长单位为m;所述Xo为网格中心点坐标的横坐标,单位为m;所述Yo为网格中心点坐标的纵坐标,单位为m。
10.根据权利要求9所述基于空间索引的搜索结果缓存系统,其特征在于,
所述缓存单元,还用于根据所述网格中心点坐标生成SpaceID:
Figure FDA0000068214990000031
所述网格系数=100000/(网格边长/1000);
所述缓存单元,还用于将所述SpaceID和所述关键字组成搜索关键字。
CN201110159131.0A 2011-06-14 2011-06-14 一种基于空间索引的搜索结果缓存方法和系统 Active CN102831112B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110159131.0A CN102831112B (zh) 2011-06-14 2011-06-14 一种基于空间索引的搜索结果缓存方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110159131.0A CN102831112B (zh) 2011-06-14 2011-06-14 一种基于空间索引的搜索结果缓存方法和系统

Publications (2)

Publication Number Publication Date
CN102831112A true CN102831112A (zh) 2012-12-19
CN102831112B CN102831112B (zh) 2016-06-15

Family

ID=47334255

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110159131.0A Active CN102831112B (zh) 2011-06-14 2011-06-14 一种基于空间索引的搜索结果缓存方法和系统

Country Status (1)

Country Link
CN (1) CN102831112B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002041571A (ja) * 2000-07-28 2002-02-08 Victor Co Of Japan Ltd 情報検索装置
CN101178733A (zh) * 2007-12-07 2008-05-14 彭海杰 一种关联数据的索引、检索、存储和显示控制的信息系统
CN101309441A (zh) * 2007-05-16 2008-11-19 北京邮电大学 基于用户位置及呼叫中心的信息搜索系统
CN101996258A (zh) * 2010-11-30 2011-03-30 重庆大学 一种便于快速查询的电子地图信息栅格化处理及查询方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002041571A (ja) * 2000-07-28 2002-02-08 Victor Co Of Japan Ltd 情報検索装置
CN101309441A (zh) * 2007-05-16 2008-11-19 北京邮电大学 基于用户位置及呼叫中心的信息搜索系统
CN101178733A (zh) * 2007-12-07 2008-05-14 彭海杰 一种关联数据的索引、检索、存储和显示控制的信息系统
CN101996258A (zh) * 2010-11-30 2011-03-30 重庆大学 一种便于快速查询的电子地图信息栅格化处理及查询方法

Also Published As

Publication number Publication date
CN102831112B (zh) 2016-06-15

Similar Documents

Publication Publication Date Title
CN103488760B (zh) 地理信息瓦片服务的提供方法及实现该方法的装置
CN103927933B (zh) 一种海量移动目标渲染的方法及装置
CN101964034B (zh) 一种模式信息损失最小化的序列类数据隐私保护方法
US20150356088A1 (en) Tile-based geocoder
CN103943025B (zh) 一种基于道路坐标系的街景显示方法
CN107590226A (zh) 一种基于瓦片的矢量地图渲染方法
CN102193996B (zh) 基于移动设备的可视Web对象搜索引擎方法
CN101270992A (zh) 地理坐标的搜索装置及搜索方法
CN109597829B (zh) 一种实现可搜索加密关系型数据库缓存的中间件方法
CN108228743A (zh) 一种实时大数据搜索引擎系统
CN106777343A (zh) 增量分布式索引系统和方法
CN105719270A (zh) 二维地热资源资料的基于网络的三维截面图分析方法
CN105701156A (zh) 一种分布式文件系统管理方法及装置
CN101466082A (zh) 矢量地图数据的多级切片处理方法
CN103745031B (zh) 基于gis模式的输电线路房屋分布图生成方法
CN103530330A (zh) 一种逆地理编码处理系统的处理方法
CN103559209B (zh) 一种Voronoi Diagram与虚拟网格结合的高效空间最近邻查询方法
CN103914877A (zh) 一种基于扩展合并的三维模型多细节层次结构
CN103544300B (zh) 一种云环境下可扩展存储索引结构的实现方法
CN103106197A (zh) 层次化数据的展示方法及系统
CN104794175A (zh) 基于度量k最近对的景点和酒店最佳配对方法
CN103714192A (zh) 基于自适应r-树的大数据量铁路三维设计模型渲染方法
CN104809210A (zh) 一种基于分布式计算框架下海量数据加权top-k查询方法
CN102831112A (zh) 一种基于空间索引的搜索结果缓存方法和系统
CN106251623A (zh) 一种提供道路实时路况服务的系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20190821

Address after: 518000 Nanshan District science and technology zone, Guangdong, Zhejiang Province, science and technology in the Tencent Building on the 1st floor of the 35 layer

Co-patentee after: Tencent cloud computing (Beijing) limited liability company

Patentee after: Tencent Technology (Shenzhen) Co., Ltd.

Address before: Shenzhen Futian District City, Guangdong province 518044 Zhenxing Road, SEG Science Park 2 East Room 403

Patentee before: Tencent Technology (Shenzhen) Co., Ltd.

TR01 Transfer of patent right