地理位置搜索引擎及其构建方法技术

技术编号:3948731 阅读:369 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种地理位置搜索引擎及其构建方法。该搜索引擎为四叉树形结构,其包括由上到下依次叠设的M个层,其中,第1层包括1个代表整个地图的四叉树节点,该四叉树节点包括1棵按搜索对象的至少一种属性建立的B树,第M.层分别包括4M-1个分别代表整个地图的1/4M-1的四叉树节点,每个四叉树节点包括0~1棵按搜索对象的至少一种属性建立的B树,即,第M层共包括(4M-1-X)棵B树,上述的M为自然数,其由从数据库倒入的数据量决定,X是因倒入第M层的数据中没有符合指定地理位置范围的数据而未建立的B树数量。该地理位置搜索引擎通过将代表搜索对象的多种属性的多个索引相复合构建而成。本发明专利技术可有效提高查找效率,减轻计算机负载,提高其响应速度。

【技术实现步骤摘要】

本专利技术涉及一种搜索引擎及其构建方法,具体涉及一种将对应于搜索对象的至少两种不同属性的索引相复合的。
技术介绍
搜索引擎的数据库中有上千万的数据对象,每个对象都拥有自己最后一次在世界 地图上出现的经讳度位置和时间戳,同时这些对象拥有其他一些属性,比如年龄、性别等。 若需要在某一个应用场景中用户需要在地图的某个范围内(比如在上海地区范围内)寻 找性别是女,年龄在20-25岁的对象,并且按出现的时间倒序排列前100位,根据他们的经 纬度显示在地图上。最终的效果是用户能根据自己的喜好来筛选指定地理范围内的对象, 进行下一步操作。而现有的数据库技术(不管是oracle、 mysql、 informix等),想要在上 千万,甚至上亿的对象中实现上述需求,计算量是非常大的。 具体而言,对于上述需求,现有的搜索引擎技术通常会选用两种方法进行数据库 查询 第一种方法是,数据库先要筛选出符合地理位置条件的对象(地理索引优先原 则),然后把这些对象按时间进行排序,然后进行年龄、性别的匹配,最后得出结果。此方法 适合地理范围较小时使用,例如只在上海的浦东机场搜索,可能满足结果的数据不足千条, 则这些数据按时间排序会很快,搜索结果会很快得到。 第二种方法是,数据库先按时间倒序选出对象(时间索引优先原则),然后匹配对 象的地理位置、年龄、性别。此方法适合地理范围较大时使用,比如在面积占整张地图80% 的范围上寻找,那么此时先利用时间索引,很快得出倒序结果,把每个结果去匹配地理位置 条件,满足的可能性很大,搜索结果也会很快得到。 但是在这两个方法选择的条件设置上是很困难的,关键就在于怎样划分地理范围 较小或较大这两个概念.也许面积占整张地图80%的范围里没有一个对象,所有对象都集 中在其他20%的范围里,那么要等匹配完所有对象才会的出搜索结果。或者极端情况在上 海的浦东机场搜索,可能满足结果的数据有上百万条,那这些数据按时间排序的计算量也 是非常大的,搜索时间也会很长。
技术实现思路
本专利技术的目的在于提出一种,其可有效提高查找 效率,减轻计算机负载,提高其响应速度,从而克服现有技术中的不足。 为实现上述专利技术目的,本专利技术采用了如下技术方案 —种地理位置搜索引擎,其特征在于,该搜索引擎为四叉树形结构,其包括由上到 下依次叠设的M个层,其中,第1层包括1个代表整个地图的四叉树节点,该四叉树节点包 括1棵按搜索对象的至少一种属性建立的B树,第M层分别包括4M—1个分别代表整个地图 的1/4M—1的四叉树节点,每个四叉树节点包括0 1棵按搜索对象的至少一种属性建立的4B树,S卩,第M层共包括(4M—^X)棵B树,上述的M为自然数,其由从数据库倒入的数据量决 定,X是因倒入第M层的数据中没有符合指定地理位置范围的数据而未建立的B树数量。 具体而言,所述搜索引擎的四叉树形结构是在倒入数据的过程中同时生成的,其 具体过程为 从数据库倒入数据,刚开始数据倒入停留在第一层建立B树,当数据量在第一层 超过N时,第一层的B树在继续增加数据量的同时,开始向下分裂,判断数据属于第二层的 哪颗B树,并倒入第二层,当第二层的某棵B树的数据量也达到N的时候,即也开始向下分 裂,判断数据属于第三层的哪颗B树,并倒入到第三层中,以此类推,直至数据倒完,完成四 叉树形结构的建立,上述的N代表各B树可承载的数据量。 该搜索引擎包括M个层,其中 第1层包括代表整个地图的一个四叉树节点,该四叉树节点包含一棵按搜索对象 的至少一种属性建立的B树; 第2层包括分别代表上述地图的四分之一的四个四叉树节点,该四个四叉树节点 按田字型分布,每一四叉树节点包括O 1棵按搜索对象的至少一种属性建立的B树; 第3层包括十六个四叉树节点,其中,代表第2层中的四份地图之一的四分之一的 四个四叉树节点按田字型分布,每一四叉树节点包括0 1棵按搜索对象的至少一种属性 建立的B树; 第4、5、6......M层的结构以此类推。 如上所述地理位置搜索引擎的构建方法,其特征在于,该方法为 采用将搜索对象的地理位置属性和至少另一种属性的索引相复合的方式,构建一个M层的四叉树; 从数据库倒入数据,最初数据倒入停留在包括1个四叉树节点的第1层,并在该四 叉树节点上建立l棵B树; 当数据量在第1层超过N时,第1层的B树在继续增加数据量的同时,开始向下分 裂,并判断数据属于第2层的四个四叉树节点的哪一个,而后倒入第二层,在相应的四叉树 节点上建立B树; 当第二层的某棵B树的数据量也达到N时,也开始向下分裂,倒入到第三层,并在 第3层的相应四叉树节点上建立B树; 以此类推,待数据倒入完成,即形成基于四叉树和B树相结合的地理位置搜索引 擎,上述N为各B树可承载的数据量。 进一步的讲,该方法中,若由第(M-l)层倒入第M层的数据中包含符合第M层的某 个四叉树节点的搜索对象的指定地理位置属性的数据,则在该四叉树节点上建立B树,反 之,则该四叉树节点上不会建立B树。 该方法中,是按搜索对象的至少另一种属性在四叉树节点上建立B树的。 所述地理位置搜索引擎包括M层,其中 第1层包括代表整个地图的一个四叉树节点,该四叉树节点包含一棵按搜索对象 的至少另一种属性建立的B树; 第2层包括分别代表上述地图的四分之一的四个四叉树节点,该四个四叉树节点 按田字型分布,每一四叉树节点包括0 1棵按搜索对象的至少另一种属性建立的B树;5 第3层包括十六个四叉树节点,其中,代表第2层中的四份地图之一的四分之一的 四个四叉树节点按田字型分布,每一四叉树节点包括0 1棵按搜索对象的至少另一种属 性建立的B树; 第4、5、6......M层的结构以此类推。 本专利技术采用将搜索对象的地理位置索引和至少另一种属性(如时间属性等)的索 引相复合的设计方式,即,在选择出符合搜索对象的地理位置属性的数据时,提前把这些数 据按搜索对象的至少另一种属性排序,从而提高查找效率,从而解决了现有技术中计算机 负载高,响应慢的问题。附图说明 图1是本专利技术具体实施方式中地理位置搜索引擎的结构示意图。 具体实施例方式以下结合附图及具体实施方式对本专利技术的内容作进一步说明。 如图1所示,本实施例中地理位置搜索引擎是一四叉树形结构,其包括M层,其中 每一层由若干B树组成,如,第l层代表整个地图,只有一个四叉树节点,该四叉树节点包 含一棵按搜索对象的至少一种属性建立的B树,第2层是把第1层的地图按〃 田〃 字形平 均分成四个节点,每个节点代表上一层的四分之一地图,在理想状态下,每一节点有一棵B 树,共四棵B树,也是按搜索对象的至少一种属性建立的,第3层把第2层的每一份地图平均分成四份地图,每一份对应一棵B树,理想状态下共16棵B树,第4、5、6......M层的结构以此类推。 当然,需要指出的是,上述的四叉树结构是在倒入数据的过程中同时生成的,而不 是在倒入数据之前就建立好的,其具体过程为 从数据库倒入数据,刚开始数据倒入停留在第1层建立B树,当数据量在第1层超 过N时,第1层的B树在继续增加数据量的同时,开始向下分裂,判断数据属于第2层的哪 颗B树,倒入第2层,当第2层的某棵B树的数据量也达到N的时候也开始向下分裂倒入到 第3层的B树中,以此类推,数据倒入完本文档来自技高网
...

【技术保护点】
一种地理位置搜索引擎,其特征在于,该搜索引擎为四叉树形结构,其包括由上到下依次叠设的M个层,其中,第1层包括1个代表整个地图的四叉树节点,该四叉树节点包括1棵按搜索对象的至少一种属性建立的B树,第M层分别包括4↑[M-1]个分别代表整个地图的1/4↑[M-1]的四叉树节点,每个四叉树节点包括0~1棵按搜索对象的至少一种属性建立的B树,即,第M层共包括(4↑[M-1]-X)棵B树,上述的M为自然数,其由从数据库倒入的数据量决定,X是因倒入第M层的数据中没有符合指定地理位置范围的数据而未建立的B树数量。

【技术特征摘要】

【专利技术属性】
技术研发人员:张激扬关志达
申请(专利权)人:苏州广达友讯技术有限公司
类型:发明
国别省市:32[中国|江苏]

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

1