CN115730154A - 一种poi数据搜索方法、系统及终端 - Google Patents
一种poi数据搜索方法、系统及终端 Download PDFInfo
- Publication number
- CN115730154A CN115730154A CN202111002169.7A CN202111002169A CN115730154A CN 115730154 A CN115730154 A CN 115730154A CN 202111002169 A CN202111002169 A CN 202111002169A CN 115730154 A CN115730154 A CN 115730154A
- Authority
- CN
- China
- Prior art keywords
- search
- poi data
- poi
- index
- grid
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 239000000470 constituent Substances 0.000 claims abstract description 43
- 238000004590 computer program Methods 0.000 claims description 14
- 238000004458 analytical method Methods 0.000 claims description 10
- 238000012163 sequencing technique Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 15
- 238000012937 correction Methods 0.000 description 11
- 238000011160 research Methods 0.000 description 10
- 230000011218 segmentation Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 229930091051 Arenine Natural products 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种POI数据搜索方法、系统及终端,属于数据搜索技术领域,其中应用于终端的POI数据搜索方法包括:获取用户输入的搜索词以及所述终端的位置信息;根据所述搜索词中包含的目标元素对所述搜索词进行解析,得到至少一个组成元素;根据所述至少一个组成元素以及所述位置信息,生成索引数据查询语句;利用所述索引数据查询语句在离线POI数据库中进行搜索,生成搜索结果,其中,所述离线POI数据库包括POI数据集和空间索引。本发明通过使用离线POI数据库,终端可以在脱网状态下进行POI数据搜索,并且通过对输入的搜索词进行解析,可以识别出不同的组成元素,继而生成不同搜索逻辑的索引数据查询语句,可以提高POI数据的搜索准确度。
Description
技术领域
本发明涉及数据搜索技术领域,尤其涉及一种POI数据搜索方法、系统及终端。
背景技术
POI(Point of Interest)被称为“兴趣点”或“位置信息点”,其包含名称、坐标、电话、坐标、分类等基础信息,POI数据也包括评价、消费水平、特色推荐、是否有停车位、是否能刷卡等增值信息。对POI数据的搜索作为位置服务的核心能力,目前已广泛应用于手机地图APP、地图网站、车载导航软件等领域,已经成为人们日常生活不可拆分的组成部分。
用户获取POI搜索服务要求相应的手机、车载终端必须处于拥有移动基站信号的区域内,通过远程请求服务器端完成,也就是说,POI搜索的实现完全依赖于联网的成功与否,若无法联网则会导致POI搜索失败,且在手机、车载终端与服务器端之间通过移动网络进行交互时,若处于网络拥堵状态或者因为3G/4G信号较弱采用2G网络时,会增加搜索响应的网络时延,这极大的降低用户的搜索体验。
发明内容
有鉴于此,本发明提供一种POI数据搜索方法、系统及终端,用于解决目前终端脱网时无法进行POI搜索,或者网络信号不佳时POI搜索耗时长甚至搜索失败的问题。
为解决上述技术问题,第一方面,本发明提供一种POI数据搜索方法,应用于终端,包括:
获取用户输入的搜索词以及所述终端的位置信息;
根据所述搜索词中包含的目标元素,采用与所述目标元素对应的识别顺序和识别方式对所述搜索词进行解析,得到至少一个组成元素;
根据所述至少一个组成元素以及所述位置信息,生成索引数据查询语句;
利用所述索引数据查询语句在离线POI数据库中进行搜索,生成搜索结果,其中,所述离线POI数据库包括POI数据集和空间索引,所述POI数据集包括若干POI数据,每一POI数据包括坐标,所述空间索引用于根据所述POI数据的坐标查找位于目标区域内的POI数据。
可选的,所述空间索引包括n层面积相等的空间网格,所述空间网格的面积与预设地理面积对应,每一层空间网格均覆盖所述POI数据集的全部POI数据,且第N层空间网格中包含的网格数量为4N-1个,每一层空间网格内的每一个网格具有唯一的网格编号,每一个POI数据对应于每一层空间网格内的一个网格编号,其中,n为正整数,1≤N≤n。
可选的,所述离线POI数据库还包括倒排索引,每一POI数据还包括名称,所述名称被拆分为至少一个分词,所述倒排索引根据每一POI数据的分词建立。
可选的,所述根据所述搜索词中包含的目标元素,采用与所述目标元素对应的识别顺序和识别方式对所述搜索词进行解析,得到至少一个组成元素包括:
在所述搜索词存在错别词的情况下,对所述搜索词进行修正;
对修正后的搜索词进行解析,得到至少一个组成元素。
可选的,所述根据所述至少一个组成元素以及所述位置信息,生成索引数据查询语句包括:
在所述组成元素包括多个的情况下,对所述多个组成元素进行组合;
根据组合结果以及所述位置信息,生成索引数据查询语句。
可选的,所述利用所述索引数据查询语句在离线POI数据库中进行搜索,生成搜索结果包括:
根据所述位置信息和预设搜索范围,确定搜索轮廓;
根据所述搜索轮廓,确定目标层空间网格以及所述搜索轮廓覆盖的目标层空间网格中的目标网格;
根据所述索引数据查询语句以及所述倒排索引,在所述POI数据集中搜索得到第一POI数据;
根据所述空间索引,从所述第一POI数据中搜索出位于所述目标网格内的第二POI数据;
根据所述第二POI数据,生成搜索结果。
可选的,所述根据所述第二POI数据,生成搜索结果包括:
根据所述第二POI数据的相似度、热度、类别、与所述终端的距离中的至少一者,对所述第二POI数据进行排序,生成搜索结果。
第二方面,本发明还提供一种POI数据搜索系统,应用于终端,所述系统包括:
获取模块,用于获取用户输入的搜索词以及所述终端的位置信息;
解析模块,用于根据所述搜索词中包含的目标元素,采用与所述目标元素对应的识别顺序和识别方式对所述搜索词进行解析,得到至少一个组成元素;
生成模块,用于根据所述至少一个组成元素以及所述位置信息,生成索引数据查询语句;
搜索模块,用于利用所述索引数据查询语句在离线POI数据库中进行搜索,生成搜索结果,其中,所述离线POI数据库包括POI数据集和空间索引,所述POI数据集包括若干POI数据,每一POI数据包括坐标,所述空间索引用于根据所述POI数据的坐标查找位于目标区域内的POI数据。
可选的,所述离线POI数据库包括POI数据集和空间索引,所述POI数据集包括若干POI数据,每一POI数据包括坐标,所述空间索引用于根据所述POI数据的坐标查找位于目标区域内的POI数据。
可选的,所述空间索引包括n层面积相等的空间网格,所述空间网格的面积与预设地理面积对应,每一层空间网格均覆盖所述POI数据集的全部POI数据,且第N层空间网格中包含的网格数量为4N-1个,每一层空间网格内的每一个网格具有唯一的网格编号,每一个POI数据对应于每一层空间网格内的一个网格编号,其中,n为正整数,1≤N≤n。
可选的,所述离线POI数据库还包括倒排索引,每一POI数据还包括名称,所述名称被拆分为至少一个分词,所述倒排索引根据每一POI数据的分词建立。
可选的,所述解析模块包括:
修正单元,用于在所述搜索词存在错别词的情况下,对所述搜索词进行修正;
解析单元,用于对修正后的搜索词进行解析,得到至少一个组成元素。
可选的,所述生成模块包括:
组合单元,用于在所述组成元素包括多个的情况下,对所述多个组成元素进行组合;
生成单元,用于根据组合结果以及所述位置信息,生成索引数据查询语句。
可选的,所述搜索模块包括:
第一确定单元,用于根据所述位置信息和预设搜索范围,确定搜索轮廓;
第二确定单元,用于根据所述搜索轮廓,确定目标层空间网格以及所述搜索轮廓覆盖的目标层空间网格中的目标网格;
第一搜索单元,用于根据所述索引数据查询语句以及所述倒排索引,在所述POI数据集中搜索得到第一POI数据;
第二搜索单元,用于根据所述空间索引,从所述第一POI数据中搜索出位于所述目标网格内的第二POI数据;
结果生成单元,用于根据所述第二POI数据,生成搜索结果。
可选的,所述结果生成单元包括:
排序子单元,用于根据所述第二POI数据的相似度、热度、类别、与所述终端的距离中的至少一者,对所述第二POI数据进行排序,生成搜索结果。
第三方面,本发明还提供一种终端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;所述处理器执行所述计算机程序时实现上述任一种POI数据搜索方法。
第四方面,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一种POI数据搜索方法中的步骤。
本发明的上述技术方案的有益效果如下:
本发明实施例中,通过使用离线POI数据库,终端可以在脱网状态下进行POI数据搜索,并且通过对输入的搜索词进行解析,可以识别出不同的组成元素,继而生成不同搜索逻辑的索引数据查询语句,可以提高POI数据的搜索准确度。
附图说明
图1为本发明实施例一提供的一种POI数据搜索方法的流程示意图;
图2为本发明实施例一提供的空间网格的示意图;
图3为本发明实施例一提供的网格编号的示意图;
图4为本发明实施例一提供的空间索引的索引表;
图5为本发明实施例一提供的数据结构示意图;
图6为本发明实施例一提供的搜索轮廓的示意图;
图7为本发明实施例一提供的搜索轮廓覆盖的网格的示意图;
图8为本发明实施例一提供的一种POI数据搜索系统的工作流程示意图;
图9为本发明实施例二提供的一种POI数据搜索系统的结构示意图;
图10为本发明实施例三提供的一种终端的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1为本发明实施例一提供的一种POI数据搜索方法的流程示意图,该方法应用于终端,包括以下步骤:
步骤11:获取用户输入的搜索词以及所述终端的位置信息;
其中,所述终端的位置信息为用户在终端输入搜索词时所述终端当前所处的位置。
步骤12:根据所述搜索词中包含的目标元素,采用与所述目标元素对应的识别顺序和识别方式对所述搜索词进行解析,得到至少一个组成元素;
本发明实施例中,对所述搜索词进行解析时,可以采用语法识别和/或语义识别等方式进行解析,得到的组成元素可以是名词、形容词等等。其中,所谓目标元素,可以是预先设定的一类元素,具体可以包括省份名称、城市名称、区县名称、乡镇名称、村落名称、商圈名称、道路名称、门牌号码、交叉路口、分类名称、汉语拼音、英文、中文字符等13种元素,由于不同的目标元素对搜索结果的影响程度不同,因此,可以为不同的目标元素设置不同的识别方式以及识别顺序,识别方式的不同以及识别顺序的不同可以使解析得到的组成元素更准确地反应用户的搜索意图,从而使搜索结果更符合用户需求。
以上述部分目标元素为例,识别顺序可以按照道路名称→省份名称→城市名称→区县名称→乡镇名称→村落名称→商圈名称的顺序,又如,若所述搜索词中包含组合在一起的两个及以上的道路名称,则识别方式为将其识别为交叉路口,若所述搜索词包含道路名称、门牌号码,则识别方式采用前缀+后缀的组合规则进行识别。
步骤13:根据所述至少一个组成元素以及所述位置信息,生成索引数据查询语句;
其中,所述索引数据查询语句可以表征用户的搜索意图,即可以确定对应的搜索逻辑,例如,所述索引数据查询语句包含组成元素的组合方式、该组合方式下所采用的匹配规则等。
步骤14:利用所述索引数据查询语句在离线POI数据库中进行搜索,生成搜索结果,其中,所述离线POI数据库包括POI数据集和空间索引,所述POI数据集包括若干POI数据,每一POI数据包括坐标,所述空间索引用于根据所述POI数据的坐标查找位于目标区域内的POI数据。
本发明实施例中,所述离线POI数据库存储在所述终端,因此在进行POI数据搜索时终端无需联网,而是直接在本地进行搜索。进一步地,由于POI数据具备空间属性,用户进行POI数据搜索时,不仅仅需要找出所有与搜索词满足相似度要求的POI数据,还需要将距离所述终端最近的相关POI数据优先返回,以便用户通过驾车、公交、步行等方式到达目的地,因此,本发明实施例中,对POI数据的坐标(也即经纬度)建立了空间索引,通过该空间索引,可以快速搜索出位于目标区域内的POI数据,从而提高搜索速率。
本发明实施例提供的POI数据搜索方法,通过使用离线POI数据库,终端可以在脱网状态下进行POI数据搜索,并且通过对输入的搜索词进行解析,可以识别出不同的组成元素,继而生成不同搜索逻辑的索引数据查询语句,可以提高POI数据的搜索准确度。
下面举例说明上述POI数据搜索方法。
其中一种可选的具体实施方式中,利用所述索引数据查询语句在离线POI数据库中进行搜索之前,所述方法还包括:
建立离线POI数据库。
也就是说,为了使终端能够脱网进行POI数据搜索,需要在终端上建立离线POI数据库。
在本发明的一些实施例中,所述空间索引包括n层面积相等的空间网格,所述空间网格的面积与预设地理面积对应,每一层空间网格均覆盖所述POI数据集的全部POI数据,且第N层空间网格中包含的网格数量为4N-1个,每一层空间网格内的每一个网格具有唯一的网格编号,每一个POI数据对应于每一层空间网格内的一个网格编号,其中,n为正整数,1≤N≤n。
请参考图2,图2为本发明实施例一提供的空间网格的示意图。本发明实施例中,所述空间索引包括n层空间网格,每一层空间网格的面积均相等,所述空间网格的面积与预设地理面积相对应,也即所述空间网格相当于预设地理面积下的某一地域的地图。每一层空间网格的外轮廓形状均为正方形,并且,每一层空间网格均覆盖所述POI数据集中的全部POI数据,也即,对于每一层空间网格而言,所述POI数据集中的全部POI数据均可以分布在该层空间网格上,由于所述空间网格相当于某一地域的地图,因此,所述POI数据在该空间网格上的分布位置由所述POI数据的地址确定。每一层空间网格中包含了预设数量的网格,所述网格也呈正方形,其中,第N层空间网格中包含的网格的数量为4N-1个,1≤N≤n,例如,第一层空间网格中包含41-1=40=1个网格,第二层空间网格中包含42-1=41=4个网格,第三层空间网格中包含43-1=42=16个网格,以此类推,以n=16为例,第十六层空间网格有超过10亿个网格,按照预设地理面积为960万平方公里,则在第十六层空间网格中,每一个网格的边长大约对应100米的范围。
请参考图3,图3为本发明实施例一提供的网格编号的示意图。在本发明的一些实施例中,每一层空间网格内的每一个网格都具有唯一的网格编号,以图3为例,表示第4层的空间网格,其中标有“5,5”的网格的网格编号可以表示为(4,5,5),即第四层空间网格中第五行、第五列的网格。
请参考图4,图4为本发明实施例一提供的空间索引的索引表。本发明的另一些实施例中,由于每一层空间网格都覆盖了全部的POI数据,因此,对于一个POI数据而言,其坐标(经纬度)将对应每一层空间网格中的一个网格,也就是说,每一个POI数据都会对应每一层空间网格内的一个网格(或者说网格编号)。在创建所述空间索引时,根据每一个POI数据的坐标(经纬度)计算出其归属的网格的网格编号,循环执行计算第1层到第n层的所有结果,这样每一个POI数据在第1~n层都将有一个网格编号与之对应。可选的,在创建所述空间索引时,可以将每一层空间网格作为一个POI数据的域,即第1层对应filed 1,第2层对应filed 2……第n层对应filed n,然后将网格编号以term的方式存入空间索引,得到POI数据的ID(用于表征任一POI数据)与网格(或者说网格编号)的索引表,如图4所示。
本发明的一些实施例中,可选的,所述离线POI数据库还包括倒排索引,每一POI数据还包括名称,所述名称被拆分为至少一个分词,所述倒排索引根据每一POI数据的分词建立。
请参考图5,图5为本发明实施例一提供的数据结构示意图。本发明实施例中,为每一个POI数据创建对应的空间索引之后,还可以对POI数据的名称进行拆分,也就是说,POI数据还包括名称,通过对POI数据的名称进行拆分,可以得到至少一个分词,然后,再根据分词结果建立倒排索引。示例性的,一POI数据的名称为“东北大学”,则对其进行拆分,可以得到“东北”、“大学”等分词,另一POI数据的名称为“东北大马路”则对其进行拆分,可以得到“东北”、“大”、“马路”等分词。可选的,在建立倒排索引时,可以采用B树的数据结构,在该数据结构中,每一个数据节点中包含分词、POI ID(即上述中的POI数据的ID),空间索引编码,其数据结构示例如图5所示。假设“东北大学”=A1,“东北大马路”=A2,“东方大厦”=A3,则在B树数据结构中,左侧叶节点可以存储“东北大学”这一POI数据的相关信息,中间叶节点存储“东北大马路”这一POI数据的相关信息,而右侧叶节点可以存储“东方大厦”这一POI数据的相关信息,每一叶节点包括POI ID和空间索引。
本发明的一些实施例中,所述对所述搜索词进行解析,得到至少一个组成元素包括:
在所述搜索词存在错别词的情况下,对所述搜索词进行修正;
对修正后的搜索词进行解析,得到至少一个组成元素。
也就是说,输入的搜索词可能因为存在错别词而导致未能识别出来或者识别不准确,因此,需要根据汉语拼音规则等,将同音的内容进行修正,或者根据其他修正方式进行修正,之后再根据修正后的搜索词得到至少一个组成元素。示例性的,可以根据城市区化代码、汉语拼音序列等,查找出与汉语拼音序列完全匹配的纠错词对象;然后,按照搜索次数对纠错词对象进行排序,选取搜索次数最高的对象Q作为纠错比对对象;按照如下方法计算输入的搜索词q的纠错权重rank(q),并与对象Q的纠错权重进行比对(其中,对象Q的搜索次数记为rank(Q)),若rank(q)/rank(Q)<0.5,则返回对象Q的纠错词属性(以字符串形式返回给调用方),也即将对象Q作为修正后的搜索词;否则不对输入的搜索词进行纠错修正。纠错权重计算公式如下:
rank(q)=Num*(1+Len/10+IsStr),
其中,Num表示输入的搜索词在终端的日志中的记录次数,Len表示输入的搜索词命中纠错记录的前提下的词长度,IsStr取值0或1,取值为0表示输入的搜索词是中文,取值为1表示输入的搜索词是拼音。
本发明的一些实施例中,所述对所述搜索词进行解析,得到至少一个组成元素时,输入的搜索词中影响搜索结果的目标元素包括:省份名称、城市名称、区县名称、乡镇名称、村落名称、商圈名称、道路名称、门牌号码、交叉路口、分类名称、汉语拼音、英文、中文字符等13种元素。因此,对于不同的目标元素,可以采用与目标元素对应的识别顺序和识别方式进行解析。示例性地,在对所述搜索词进行解析,得到至少一个组成元素时可以参考以下的几种规则进行解析识别。
对于省份名称、城市名称、区县名称、乡镇名称、村落名称、商圈名称、道路名称而言,每一类元素都具备一份单独的词库文件,文件中包括标准名称、别名简称、归属行政区划、轮廓经纬度等信息,在对搜索词进行解析得到至少一个组成元素时,即可参考上述词库文件进行解析,以确保解析的准确性和全面性。可选的,可以按照道路名称>省份名称>城市名称>县名称>乡镇名称>村落名称>商圈名称的顺序,利用词库文件中的内容与输入的搜索词依次进行比对,其中,道路名称之所以排序在最前面,是因为道路名称中经常包含省市区的简要名称,为了防止混淆,有必要将道路名称识别设为最优先的级别。
对于门牌号码,在完成上述行政区划的识别后,如果输入的搜索词中存在道路名称/村落名称等目标元素,则启动门牌号码的识别工作,采用前缀+后缀的组合规则进行识别,前缀字包括阿拉伯数字(1/2/3/4/5/6/7/8/9/0)、中文数字(一/二/三/四/五/六/七/八/九)、天干(甲/乙/丙/丁/戊/己/庚/辛/壬/癸),后缀字包括号、栋、巷、弄、组、棟、橦,楼、院等。同样,对于交叉路口,也是在行政区划识别完成后,如果输入的搜索词中存在两条路及以上道路前后组合在一起,即判定为交叉路口。
对于分类名称,建有大类、中类、小类三级结构,每一级结构都具备相应的名称及代码,其中,名称用于识别,代码用于筛选POI数据,优先识别小分类,小分类查无时依次识别中分类和大分类。示例性的,分类名称可以有:学校、公园等。通过上述识别规则,可以确定搜索词对应的分类名称,继而在后续搜索POI数据时可在某一类中进行搜索。
本发明的一些实施例中,所述根据所述至少一个组成元素以及所述位置信息,生成索引数据查询语句包括:
在所述组成元素包括多个的情况下,对所述多个组成元素进行组合;
根据组合结果以及所述位置信息,生成索引数据查询语句。
按照上述的识别规则完成组成元素的识别后,由于不同组成元素之间的组合所代表的含义可能相近也可能完全完全不同,因此,可以根据多个组成元素的组合结果以及所述终端所处的位置信息来生成相应的索引数据查询语句,以明确搜索意图,指导后续的搜索匹配工作,比如,可以建立一个搜索意图库,该搜索意图库包含相应格式的索引数据查询语句,在生成一条索引数据查询语句后,即可利用所述搜索意图库明确搜索意图,确定搜索逻辑。
示例性的,由于搜索时通常会关注以下两点,第一点是用户查找的POI数据是以什么形式命名的,第二是用户希望在哪个城市得到搜索结果,因此,搜索意图库可以包括组成元素的组合情形,以及每一组合情形对应的搜索逻辑(或者说匹配逻辑)。下面以“城市+中文”(例如“北京+大学”)为例,进行示例性解释。
1)若是在终端当前所在的城市使用“城市标准名+中文”或者“城市别名+中文”进行搜索,可以采用完全匹配的方式查询POI数据的名称;
2)若输入的搜索词中的城市与终端当前所在的城市不同,则进入到输入的搜索词所对应的城市,使用“城市标准名+中文”或者“城市别名+中文”进行搜索,并可以采用完全匹配的方式查询POI数据的名称;
3)若是在终端当前所在的城市,单独使用“中文”进行搜索,可以采用完全匹配的方式查询POI数据名称;
4)若是在终端当前所在的城市,使用“城市标准名+中文”或者“城市别名+中文”进行搜索,可以采用前缀匹配的方式查询POI数据的名称;
5)若是在终端当前所在的城市,使用“城市标准名+中文”或者“城市别名+中文”进行搜索,可以采用包含匹配的方式查询POI数据的名称;
6)若是在终端当前所在的城市,使用“城市标准名+中文”或者“城市别名+中文”进行搜索,可以采用分词匹配的方式查询POI数据的名称;
7)若是在终端当前所在的城市,使用“中文”进行搜索,可以采用前缀匹配的方式查询POI数据的名称;
8)若是在终端当前所在的城市,使用“中文”进行搜索,可以采用包含匹配的方式查询POI数据的名称;
9)若是在终端当前所在的城市,使用“中文”进行搜索,可以采用分词匹配的方式查询POI数据的名称。
由此,通过上述方法,本发明实施例可以准确识别用户的搜索意图,继而生成不同搜索逻辑的索引数据查询语句,从而可以提高POI数据的搜索准确度。
本发明的一些实施例中,可选的,所述利用所述索引数据查询语句在离线POI数据库中进行搜索,生成搜索结果包括:
根据所述位置信息和预设搜索范围,确定搜索轮廓;
根据所述搜索轮廓,确定目标层空间网格以及所述搜索轮廓覆盖的目标层空间网格中的目标网格;
根据所述索引数据查询语句以及所述倒排索引,在所述POI数据集中搜索得到第一POI数据;
根据所述空间索引,从所述第一POI数据中搜索出位于所述目标网格内的第二POI数据;
根据所述第二POI数据,生成搜索结果。
示例性的,由于位置搜索一般为输入一个搜索词以及当前的坐标(经纬度),要求查找周边预设搜索范围内的POI数据,这个预设搜索范围可以是以当前的坐标为原点,半径为预设距离的圆形区域所覆盖的范围,也可以是以当前的坐标为中心点,边长为预设距离的正方形区域所覆盖的范围,还可以扩大到所述终端所在的城市等等,不管是指定的具体范围还是扩大到所述终端所在的城市,可能出现该预设搜索范围超过了上述实施例的某一层空间网格中的一个网格的范围,因此,需要确定该预设搜索范围需要定位在哪一层空间网格,也就是说,需要确定在哪一层空间网格上搜索落在相应范围内的POI数据。
请参考图6和图7,图6为本发明实施例一提供的搜索轮廓的示意图,图7为本发明实施例一提供的搜索轮廓覆盖的网格的示意图。本发明的一些实施例中,可以根据所述终端的位置信息和预设搜索范围,确定搜索轮廓,以图6为例,所述终端的坐标落在第六行、第五列的网格内,其预设搜索范围为以所述终端的坐标为中心点的一矩形区域所覆盖的范围,则如图7所示,可以确定被所述搜索轮廓圈围的网格(包括搜索轮廓线所在的网格)为A、B、C、D、E、F、G、H、I这九个网格,这些网格均选作备选网格进入到下一步的判断。具体的,在上述确定过程中,从最高层空间网格至第一层空间网格逐次查询,首先确定终端的坐标所处的网格为A,然后根据预设搜索范围确定出的搜索轮廓,确定出覆盖的网格的个数,例如,若在第16层中覆盖的网格的数量超过9个,则放弃使用该层空间网格,进一步在第15层中进行查询确定,若在第15层中覆盖的网格的数量小于9个,则将第15层确定为目标层空间网格,而被所述搜索轮廓覆盖的网格即为目标网格,在后续搜索匹配时,即可以利用目标层空间网格的空间索引(包括目标网格的网格编号等)。
本发明实施例中,可根据所述索引数据查询语句以及所述倒排索引,在所述POI数据集中进行搜索,以得到第一POI数据。如前述内容所述,由于离线POI数据库包括倒排索引,而所述索引数据查询语句中明确了相应的匹配规则,匹配规则包括完全匹配、前缀匹配、包含匹配、分词匹配等,由此可以搜索匹配得到符合要求的第一POI数据。下面结合前述的倒排索引介绍上述几种匹配规则的具体匹配过程。
对于完全匹配,匹配方法为:根据搜索词首字符,访问倒排索引中采用的B树的数据结构,找到根节点下的第一个子节点,如果B树中某一个路径下的所有字符,与搜索词完全一样且以搜索词的最后一个字符作为结束叶节点,则认为符合完全匹配规则。如图5所示,搜索词为“东北大学”,若采用完全匹配,将不会匹配“东北大马路”。对于前缀匹配,匹配方法为:根据输入词首字符,访问图5中的数据结构,找到根节点下的第一个子节点,如果B树中某一个路径下的所有字符,完全包含输入词的字符顺序,不管B树路径是否到达最后的叶节点,都认为符合前缀匹配规则。如搜索词为“东北大”,可以返回“东北大学”、“东北大马路”,即得到第一POI数据。
对于包含匹配,匹配方法为:对搜索词进行分词,如搜索词为“上研产业研究院”,则将其分词得到组成元素“上海”、“产业”、“研究院”三个词,访问倒排索引中采用的B树的数据结构,查找所有具备上述三个组成元素“上海”、“产业”、“研究院”的路径,要求保留其先后顺序并且三个组成元素之间不得存在其他分词(组成元素)节点,但是允许分词(组成元素)前后存在其他分词((组成元素))节点,即允许不以“上海产业研究院”开头或结尾的路径存在,均符合包含匹配规则。例如,可以返回“中国移动上海产业研究院”、“上海产业研究院东门”等,即得到第一POI数据。
对于分词匹配,匹配方法为:对搜索词进行分词,如搜索词为“上研产业研究院”,则将其分词的到组成元素“上海”、“产业”、“研究院”三个词,访问倒排索引中采用的B树的数据结构,查找所有具备三个分词(组成元素)“上海”、“产业”、“研究院”的路径;与包含匹配不同,分词匹配的三个分词之间允许存在其他分词(组成元素)节点,并且允许三个分词(组成元素)的先后顺序出现调整。例如,可以返回的结果包括“上海电力产业研究院”、“中国通信产业上海研究院”等,即得到第一POI数据。
通过上述匹配规则搜索得到第一POI数据之后,进一步结合上述根据搜索轮廓确定的目标层空间网格的空间索引,对第一POI数据进行筛选,只留下落在目标层空间网格的目标网格内的POI数据,即为第二POI数据。最终,可以根据得到的第二POI数据生成搜索结果,展示给用户。
本发明的一些实施例中,可选的,所述根据所述第二POI数据,生成搜索结果包括:
根据所述第二POI数据的相似度、热度、类别、与所述终端的距离中的至少一者,对所述第二POI数据进行排序,生成搜索结果。
也就是说,需要对于所述第二POI数据进行排序,以得到更符合用户需求的搜索结果。示例性的,对于相似度而言,可以按照完全匹配>前缀匹配>包含匹配>分词匹配的原则,将第二POI数据分成4组,进行第一次梳理,也就是说,完全匹配规则下的POI数据的相似度大于前缀匹配规则下的POI数据的相似度,以此类推;之后,各个组内,按照POI数据的坐标与所述终端的坐标的距离由近到远进行排序;接着,还可以对热度较高的POI数据以及热度较高的分类(例如大学这一分类)所对应的POI数据,再进行一次排序,将其排序提前;最终,生成搜索结果。可以知道,还可以采用其他方式对第二POI数据进行排序,例如,赋予第二POI数据的相似度、热度、类别、与所述终端的距离以不同的权重,对上述各项进行打分,并计算加权总和,按照得分的高低进行排序。
总之,本发明通过使用离线POI数据库,终端可以在脱网状态下进行POI数据搜索,并且通过对输入的搜索词进行解析,可以识别出不同的组成元素,继而生成不同搜索逻辑的索引数据查询语句,可以提高POI数据的搜索准确度。
请参考图8,图8为本发明实施例一提供的一种POI数据搜索系统的工作流程示意图。可选的,本发明实施例中的POI数据搜索方法可以在POI数据搜索系统中运行,即所述POI数据搜索方法可以以POI数据搜索系统的形式实现,故本发明实施例还提供了一种POI数据搜索系统,所述搜索系统包括解析模块、搜索匹配模块、排序模块以及空间索引模块等,所述搜索系统的工作流程包括以下步骤:
步骤1:用户打开地图APP,地图APP自动完成终端当前位置定位;
步骤2:用户使用地图APP,输入搜索词并点击搜索按钮,地图APP调用解析模块,传递关键字、经纬度参数;
步骤3:解析模块对搜索词中的省份名称、城市名称、区县名称、乡镇名称、村落名称、商圈名称、道路名称、门牌号码、交叉路口、分类名称、汉语拼音、英文、中文字符等组成元素进行识别,并根据组合情况查询对应的搜索策略,生成索引数据查询语句;
步骤4:解析模块将生成结果传递给本地的搜索匹配模块;
步骤5:搜索匹配模块调用本地的空间索引模块,查询完全匹配规则下的结果;
步骤6:空间索引模块返回完全匹配的POI数据结果列表;
步骤7:搜索匹配模调用本地的空间索引模块,查询前缀匹配规则下的结果;
步骤8:空间索引模块返回前缀匹配的POI数据结果列表;
步骤9:搜索匹配模调用本地的空间索引模块,查询包含匹配规则下的结果;
步骤10:空间索引模块返回包含匹配的POI数据结果列表;
步骤11:搜索匹配模调用本地的空间索引模块,查询分词匹配规则下的结果;
步骤12:空间索引模块返回分词匹配的POI数据结果列表;
步骤13:传递步骤5-12的结果给排序模块;
步骤14:排序模块根据相似度、距离、分类、热度等,重新排序POI数据结果列表;
步骤15:排序模块返回最终的POI数据结果列表给地图APP调用方;
步骤16:地图APP软件利用搜索结果,在地图上展现描画POI数据点。
本发明实施例中,通过使用离线POI数据库,终端可以在脱网状态下进行POI数据搜索,并且通过对输入的搜索词进行解析,可以识别出不同的组成元素,继而生成不同搜索逻辑的索引数据查询语句,可以提高POI数据的搜索准确度。
请参阅图9,图9为本发明实施例二提供的一种POI数据搜索系统的结构示意图,该搜索系统90包括:
获取模块91,用于获取用户输入的搜索词以及所述终端的位置信息;
解析模块92,用于根据所述搜索词中包含的目标元素,采用与所述目标元素对应的识别顺序和识别方式对所述搜索词进行解析,得到至少一个组成元素;
生成模块93,用于根据所述至少一个组成元素以及所述位置信息,生成索引数据查询语句;
搜索模块94,用于利用所述索引数据查询语句在离线POI数据库中进行搜索,生成搜索结果,其中,所述离线POI数据库包括POI数据集和空间索引,所述POI数据集包括若干POI数据,每一POI数据包括坐标,所述空间索引用于根据所述POI数据的坐标查找位于目标区域内的POI数据。
可选的,所述空间索引包括n层面积相等的空间网格,所述空间网格的面积与预设地理面积对应,每一层空间网格均覆盖所述POI数据集的全部POI数据,且第N层空间网格中包含的网格数量为4N-1个,每一层空间网格内的每一个网格具有唯一的网格编号,每一个POI数据对应于每一层空间网格内的一个网格编号,其中,n为正整数,1≤N≤n。
可选的,所述离线POI数据库还包括倒排索引,每一POI数据还包括名称,所述名称被拆分为至少一个分词,所述倒排索引根据每一POI数据的分词建立。
可选的,所述解析模块包括:
修正单元,用于在所述搜索词存在错别词的情况下,对所述搜索词进行修正;
解析单元,用于对修正后的搜索词进行解析,得到至少一个组成元素。
可选的,所述生成模块包括:
组合单元,用于在所述组成元素包括多个的情况下,对所述多个组成元素进行组合;
生成单元,用于根据组合结果以及所述位置信息,生成索引数据查询语句。
可选的,所述搜索模块包括:
第一确定单元,用于根据所述位置信息和预设搜索范围,确定搜索轮廓;
第二确定单元,用于根据所述搜索轮廓,确定目标层空间网格以及所述搜索轮廓覆盖的目标层空间网格中的目标网格;
第一搜索单元,用于根据所述索引数据查询语句以及所述倒排索引,在所述POI数据集中搜索得到第一POI数据;
第二搜索单元,用于根据所述空间索引,从所述第一POI数据中搜索出位于所述目标网格内的第二POI数据;
结果生成单元,用于根据所述第二POI数据,生成搜索结果。
可选的,所述结果生成单元包括:
排序子单元,用于根据所述第二POI数据的相似度、热度、类别、与所述终端的距离中的至少一者,对所述第二POI数据进行排序,生成搜索结果。
本发明实施例中,通过使用离线POI数据库,终端可以在脱网状态下进行POI数据搜索,并且通过对输入的搜索词进行解析,可以识别出不同的组成元素,继而生成不同搜索逻辑的索引数据查询语句,可以提高POI数据的搜索准确度。
本发明实施例是与上述方法实施例对应的产品实施例,故在此不再赘述,详细请参阅上述实施例。
请参阅图10,图10为本发明实施例三提供的一种终端的结构示意图,该终端100包括处理器101、存储器102及存储在所述存储器102上并可在所述处理器101上运行的计算机程序;所述处理器101执行所述计算机程序时实现如下步骤:
获取用户输入的搜索词以及所述终端的位置信息;
根据所述搜索词中包含的目标元素,采用与所述目标元素对应的识别顺序和识别方式对所述搜索词进行解析,得到至少一个组成元素;
根据所述至少一个组成元素以及所述位置信息,生成索引数据查询语句;
利用所述索引数据查询语句在离线POI数据库中进行搜索,生成搜索结果,其中,所述离线POI数据库包括POI数据集和空间索引,所述POI数据集包括若干POI数据,每一POI数据包括坐标,所述空间索引用于根据所述POI数据的坐标查找位于目标区域内的POI数据。
本发明实施例中,通过使用离线POI数据库,终端可以在脱网状态下进行POI数据搜索,并且通过对输入的搜索词进行解析,可以识别出不同的组成元素,继而生成不同搜索逻辑的索引数据查询语句,可以提高POI数据的搜索准确度。
可选的,所述空间索引包括n层面积相等的空间网格,所述空间网格的面积与预设地理面积对应,每一层空间网格均覆盖所述POI数据集的全部POI数据,且第N层空间网格中包含的网格数量为4N-1个,每一层空间网格内的每一个网格具有唯一的网格编号,每一个POI数据对应于每一层空间网格内的一个网格编号,其中,n为正整数,1≤N≤n。
可选的,所述离线POI数据库还包括倒排索引,每一POI数据还包括名称,所述名称被拆分为至少一个分词,所述倒排索引根据每一POI数据的分词建立。
可选的,所述处理器101执行所述计算机程序时还可实现如下步骤:
所述对所述搜索词进行解析,得到至少一个组成元素包括:
在所述搜索词存在错别词的情况下,对所述搜索词进行修正;
对修正后的搜索词进行解析,得到至少一个组成元素。
可选的,所述处理器101执行所述计算机程序时还可实现如下步骤:
所述根据所述至少一个组成元素以及所述位置信息,生成索引数据查询语句包括:
在所述组成元素包括多个的情况下,对所述多个组成元素进行组合;
根据组合结果以及所述位置信息,生成索引数据查询语句。
可选的,所述处理器101执行所述计算机程序时还可实现如下步骤:
所述利用所述索引数据查询语句在离线POI数据库中进行搜索,生成搜索结果包括:
根据所述位置信息和预设搜索范围,确定搜索轮廓;
根据所述搜索轮廓,确定目标层空间网格以及所述搜索轮廓覆盖的目标层空间网格中的目标网格;
根据所述索引数据查询语句以及所述倒排索引,在所述POI数据集中搜索得到第一POI数据;
根据所述空间索引,从所述第一POI数据中搜索出位于所述目标网格内的第二POI数据;
根据所述第二POI数据,生成搜索结果。
可选的,所述处理器101执行所述计算机程序时还可实现如下步骤:
所述根据所述第二POI数据,生成搜索结果包括:
根据所述第二POI数据的相似度、热度、类别、与所述终端的距离中的至少一者,对所述第二POI数据进行排序,生成搜索结果。
本发明实施例的具体工作过程与上述方法实施例一中的一致,故在此不再赘述,详细请参阅上述实施例一中方法步骤的说明。
本发明实施例四提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例一中任一种POI数据搜索方法中的步骤。详细请参阅以上对应实施例中方法步骤的说明。
上述计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种POI数据搜索方法,应用于终端,其特征在于,所述方法包括:
获取用户输入的搜索词以及所述终端的位置信息;
根据所述搜索词中包含的目标元素,采用与所述目标元素对应的识别顺序和识别方式对所述搜索词进行解析,得到至少一个组成元素;
根据所述至少一个组成元素以及所述位置信息,生成索引数据查询语句;
利用所述索引数据查询语句在离线POI数据库中进行搜索,生成搜索结果,其中,所述离线POI数据库包括POI数据集和空间索引,所述POI数据集包括若干POI数据,每一POI数据包括坐标,所述空间索引用于根据所述POI数据的坐标查找位于目标区域内的POI数据。
2.根据权利要求1所述的方法,其特征在于,所述空间索引包括n层面积相等的空间网格,所述空间网格的面积与预设地理面积对应,每一层空间网格均覆盖所述POI数据集的全部POI数据,且第N层空间网格中包含的网格数量为4N-1个,每一层空间网格内的每一个网格具有唯一的网格编号,每一个POI数据对应于每一层空间网格内的一个网格编号,其中,n为正整数,1≤N≤n。
3.根据权利要求2所述的方法,所述离线POI数据库还包括倒排索引,每一POI数据还包括名称,所述名称被拆分为至少一个分词,所述倒排索引根据每一POI数据的分词建立。
4.根据权利要求1所述的方法,其特征在于,所述根据所述搜索词中包含的目标元素,采用与所述目标元素对应的识别顺序和识别方式对所述搜索词进行解析,得到至少一个组成元素包括:
在所述搜索词存在错别词的情况下,对所述搜索词进行修正;
对修正后的搜索词进行解析,得到至少一个组成元素。
5.根据权利要求1所述的方法,其特征在于,所述根据所述至少一个组成元素以及所述位置信息,生成索引数据查询语句包括:
在所述组成元素包括多个的情况下,对所述多个组成元素进行组合;
根据组合结果以及所述位置信息,生成索引数据查询语句。
6.根据权利要求3所述的方法,其特征在于,所述利用所述索引数据查询语句在离线POI数据库中进行搜索,生成搜索结果包括:
根据所述位置信息和预设搜索范围,确定搜索轮廓;
根据所述搜索轮廓,确定目标层空间网格以及所述搜索轮廓覆盖的目标层空间网格中的目标网格;
根据所述索引数据查询语句以及所述倒排索引,在所述POI数据集中搜索得到第一POI数据;
根据所述空间索引,从所述第一POI数据中搜索出位于所述目标网格内的第二POI数据;
根据所述第二POI数据,生成搜索结果。
7.根据权利要求6所述的方法,其特征在于,所述根据所述第二POI数据,生成搜索结果包括:
根据所述第二POI数据的相似度、热度、类别、与所述终端的距离中的至少一者,对所述第二POI数据进行排序,生成搜索结果。
8.一种POI数据搜索系统,应用于终端,其特征在于,所述系统包括:
获取模块,用于获取用户输入的搜索词以及所述终端的位置信息;
解析模块,用于根据所述搜索词中包含的目标元素,采用与所述目标元素对应的识别顺序和识别方式对所述搜索词进行解析,得到至少一个组成元素;
生成模块,用于根据所述至少一个组成元素以及所述位置信息,生成索引数据查询语句;
搜索模块,用于利用所述索引数据查询语句在离线POI数据库中进行搜索,生成搜索结果,其中,所述离线POI数据库包括POI数据集和空间索引,所述POI数据集包括若干POI数据,每一POI数据包括坐标,所述空间索引用于根据所述POI数据的坐标查找位于目标区域内的POI数据。
9.一种终端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的POI数据搜索方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7中任一项所述的POI数据搜索方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111002169.7A CN115730154A (zh) | 2021-08-30 | 2021-08-30 | 一种poi数据搜索方法、系统及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111002169.7A CN115730154A (zh) | 2021-08-30 | 2021-08-30 | 一种poi数据搜索方法、系统及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115730154A true CN115730154A (zh) | 2023-03-03 |
Family
ID=85290682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111002169.7A Pending CN115730154A (zh) | 2021-08-30 | 2021-08-30 | 一种poi数据搜索方法、系统及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115730154A (zh) |
-
2021
- 2021-08-30 CN CN202111002169.7A patent/CN115730154A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109145169B (zh) | 一种基于统计分词的地址匹配方法 | |
US20210365489A1 (en) | Geo-fence based coordinate data processing method and apparatus, and computer device | |
US11698261B2 (en) | Method, apparatus, computer device and storage medium for determining POI alias | |
CN101785002B (zh) | 解释本地搜索查询 | |
US9424529B2 (en) | Systems and methods to facilitate local searches via location disambiguation | |
CN109145281B (zh) | 语音识别方法、装置及存储介质 | |
JP5604507B2 (ja) | データベース内のオブジェクトを探索する方法 | |
JP5064388B2 (ja) | 位置識別方法 | |
KR101945749B1 (ko) | 데이터베이스 검색방법, 네비게이션 장치 및 인덱스 구조 생성 방법 | |
CN107203526B (zh) | 一种查询串语义需求分析方法及装置 | |
CN110019645B (zh) | 索引库构建方法、搜索方法及装置 | |
CN103605752A (zh) | 一种基于语义识别的地址匹配方法 | |
RU2598165C1 (ru) | Недетерминированное разрешение неоднозначности и сопоставление данных места коммерческого предприятия | |
CN111931077B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
KR100484223B1 (ko) | 지역정보 검색서비스 시스템 | |
CN110688434B (zh) | 一种兴趣点处理方法、装置、设备和介质 | |
CN111191084B (zh) | 一种基于图结构的地名地址的解析方法 | |
CN113608628A (zh) | 一种兴趣点输入方法、装置、设备和存储介质 | |
CN115185986A (zh) | 省市区地址信息匹配方法、装置、计算机设备及存储介质 | |
CN117473025A (zh) | 基于深度学习的地址匹配方法、装置、设备及存储介质 | |
CN115730154A (zh) | 一种poi数据搜索方法、系统及终端 | |
Lee et al. | Optimization of geographic area to a web page for two-dimensional range query processing | |
CN114513550A (zh) | 一种地理位置信息的处理方法、装置及电子设备 | |
US20130110826A1 (en) | Method for searching contacts, electronic apparatus, and storage medium using the method thereof | |
CN117271577B (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 |