一种索引建立方法和系统、搜索方法和系统技术方案

技术编号:8682724 阅读:161 留言:0更新日期:2013-05-09 02:42
本发明专利技术公开了一种索引建立方法和系统、搜索方法和系统,索引建立方法包括:对每个输入样本中的样本关键词进行分词处理得到索引关键词;根据每个输入样本中的地标值分别计算对应的排序因子;以索引关键词为索引建立倒排表,倒排表中的各索引项包括与索引关键词相对应的排序因子和地标值,且在各索引项中,相同的排序因子所对应的地标值聚集在一起。搜索方法包括:对搜索请求中的搜索关键词进行分词处理得到搜索索引关键词;根据搜索请求中的地标值和搜索半径计算对应的排序因子;查找倒排表中与所述搜索索引关键词匹配的索引项中匹配所述排序因子的地标值作为搜索结果。通过本发明专利技术,能够大大减少处理查询结果的数据量、减少计算时间,从而提高系统吞吐量。

【技术实现步骤摘要】

本专利技术涉及文本搜索
,尤其涉及一种索引建立方法和系统、搜索方法和系统
技术介绍
在搜索领域,建立倒排表作为文本搜索的索引,这几乎已成为业界的一种标准方法。随着基于位置服务(LBS,Location Based Service)的应用逐渐兴起,对空间索引的需求也越来越强烈。用户经常需要查询在一定距离范围的匹配结果。目前多采用空间索引与关键词索引分别建立的方法,相互过滤,即空间索引和关键词索引分别建立,搜索时,先在空间索引库里找到满足条件的结果,再在关键词索引库里找到满足条件的结果,最后进行结果的归并。现有技术的这种搜索方案,由于需要建立多个索引,并进行多次搜索,因此存在数据传输量大,计算量大的问题。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种索引建立方法和系统、搜索方法和系统,以解决现有技术中的搜索方法存在的数据传输量大,计算量大的问题。为达到上述目的,本专利技术的技术方案是这样实现的:本专利技术提供了一种索引建立方法,该方法包括:对每个输入样本中的样本关键词进行分词处理得到索引关键词;根据每个输入样本中的地标值分别计算对应的排序因子;以索引关键词为索引建立倒排表,所述倒排表中的各索引项包括与所述索引关键词相对应的排序因子和地标值,且在各索引项中,相同的排序因子所对应的地标值聚集在一起。所述排序因子为空间索引与其他顺序影响因子的组合值,所述空间因子是根据所述地标值计算得到的,所述其他顺序影响因子根据具体业务需求确定。ScoreVal = SpacelD+OhterVal/1000.0, SpaceID = X*100000+Y ;其中,ScoreVal表示所述排序因子,SpaceID表示所述空间因子,OhterVal表示所述其他顺序影响因子;X表示地标横坐标的公里值,小数部分向下取整;Y表示地标纵坐标的公里值,小数部分向下取整。本专利技术还提供了一种索引建立系统,该系统包括:分词模块、排序因子计算模块和倒排表建立模块,其中,所述分词模块,用于对每个输入样本中的样本关键词进行分词处理得到索引关键词;所述排序因子计算模块,用于根据每个输入样本中的地标值分别计算对应的排序因子;所述倒排表建立模块,用于以索引关键词为索引建立倒排表,所述倒排表中的各索引项包括与所述索引关键词相对应的排序因子和地标值,且在各索引项中,将相同的排序因子所对应的地标值聚集在一起。所述排序因子计算模块进一步用于,将空间索引与其他顺序影响因子的组合值作为排序因子,其中,所述空间因子由所述排序因子计算模块根据所述地标值计算得到,所述其他顺序影响因子由所述排序因子计算模块根据具体业务需求确定。ScoreVal = SpacelD+OhterVal/1000.0, SpaceID = X*100000+Y ;其中,ScoreVal表示所述排序因子,SpaceID表示所述空间因子,OhterVal表示所述其他顺序影响因子;X表示地标横坐标的公里值,小数部分向下取整;¥表示地标纵坐标的公里值,小数部分向下取整。本专利技术还提供了一种搜索方法,该方法包括:对搜索请求中的搜索关键词进行分词处理得到搜索索引关键词;根据搜索请求中的地标值和搜索半径计算对应的排序因子;查找倒排表中与所述搜索索引关键词匹配的索引项中匹配所述排序因子的地标值作为搜索结果。ScoreVal = ((Xo+i)*100000)+Yo+j,其中,ScoreVal表示排序因子;Xo表示搜索请求中的地标值的横坐标的公里值,小数部分向下取整;Yo表示搜索请求中的地标值的纵坐标的公里值,小数部分向下取整;n表示搜索半径,且-(n-1)彡i彡(n-1), j = - (n-1)或j = n_l。在查找倒排表中与所述搜索索引关键词匹配的索引项中匹配所述排序因子的地标值作为搜索结果之后,该方法进一步包括:去除搜索结果中的重复地标值。本专利技术还提供了一种搜索系统,该系统包括:搜索分词模块、搜索排序因子计算模块和搜索模块,其中,所述搜索分词模块,用于对搜索请求中的搜索关键词进行分词处理得到搜索索引关键词;所述搜索排序因子计算模块,用于根据搜索请求中的地标值和搜索半径计算对应的排序因子;所述搜索模块,用于查找倒排表中与所述搜索索引关键词匹配的索引项中匹配所述排序因子的地标值作为搜索结果。所述搜索排序因子计算模块进一步用于,通过以下公式计算排序因子:ScoreVal = ((Xo+i)*100000)+Yo+j其中,ScoreVal表示排序因子;Xo表示搜索请求中的地标值的横坐标的公里值,小数部分向下取整;Yo表示搜索请求中的地标值的纵坐标的公里值,小数部分向下取整;n表示搜索半径,且-(n-1)≤i≤(n-1), j = - (n-1)或j = n_l。所述搜索模块进一步用于,在查找倒排表中与所述搜索索引关键词匹配的索引项中匹配所述排序因子的地标值作为搜索结果之后,去除搜索结果中的重复地标值。本专利技术所提供的一种索引建立方法和系统、搜索方法和系统,将地标值通过一定计算,成为倒排表建立时的排序因子,使得查询时只取具有某一范围内排序因子的地标值,这样可以一次性获得所需数据,大大减少处理查询结果的数据量、减少计算时间,从而提高系统吞吐量。附图说明图1为本专利技术实施例的一种索引建立方法的流程图;图2为本专利技术实施例中倒排表的一种存储方式的不意图;图3为本专利技术实施例中倒排表的另一种存储方式的示意图;图4为本专利技术实施例的一种索引建立系统的结构示意图;图5为本专利技术实施例的一种搜索方法的流程图;图6为本专利技术实施例的搜索半径的示意图;图7为本专利技术实施例的一种搜索系统的结构示意图。具体实施例方式下面结合附图和具体实施例对本专利技术的技术方案进一步详细阐述。本专利技术实施例所提供的一种索引建立方法如图1所示,主要包括以下步骤:步骤101,对每个输入样本中的样本关键词进行分词处理得到索引关键词。输入样本中包括样本关键词及其对应的地标值,如:输入样本为“中关村,(110,220)”,其中,“中关村”为关键词,(110,220)为“中关村”的地标值。有些样本关键词进行分词处理得到一个索引关键词,该索引关键词与所述样本关键词相同;有些样本关键词进行分词处理得到多个索引关键词,这些索引关键词共同构成所述样本关键词。步骤102,根据每个输入样本中的地标值分别计算对应的排序因子。所述排序因子可以为空间索引与其他顺序影响因子的组合值,所述空间因子是根据所述地标值计算得到的,所述其他顺序影响因子根据具体业务需求确定。较佳的,可以通过以下方式计算排序因子:ScoreVal = SpaceID+0hterVal/1000.0,SpaceID = X*100000+Y其中,ScoreVal表示排序因子,SpaceID表示空间因子,OhterVal表示其他顺序影响因子,OhterVal的通常取值为小于或等于四位有效数字的整数;X表示地标横坐标的公里值,小数部分向下取整;Y表示地标纵坐标的公里值,小数部分向下取整。较佳的,在本专利技术实施例的数据库中,所有地标的坐标值均小于99999公里。步骤103,以索引关键词为索引建立倒排表,所述倒排表中的各索引项包括与所述索引关键词相对应的排序因子和地标值,且在各索引项中,相同的排序因子所对应的地标值聚集在一起。作为本本文档来自技高网...

【技术保护点】
一种索引建立方法,其特征在于,该方法包括:对每个输入样本中的样本关键词进行分词处理得到索引关键词;根据每个输入样本中的地标值分别计算对应的排序因子;以索引关键词为索引建立倒排表,所述倒排表中的各索引项包括与所述索引关键词相对应的排序因子和地标值,且在各索引项中,相同的排序因子所对应的地标值聚集在一起。

【技术特征摘要】
1.一种索引建立方法,其特征在于,该方法包括: 对每个输入样本中的样本关键词进行分词处理得到索引关键词; 根据每个输入样本中的地标值分别计算对应的排序因子; 以索引关键词为索引建立倒排表,所述倒排表中的各索引项包括与所述索引关键词相对应的排序因子和地标值,且在各索引项中,相同的排序因子所对应的地标值聚集在一起。2.根据权利要求1所述索引建立方法,其特征在于,所述排序因子为空间索引与其他顺序影响因子的组合值,所述空间因子是根据所述地标值计算得到的,所述其他顺序影响因子根据具体业务需求确定。3.根据权利要求2所述索引建立方法,其特征在于,ScoreVal=SpacelD+OhterVal/lOO0.0,SpaceID = X*100000+Y ; 其中,ScoreVal表示所述排序因子,SpaceID表示所述空间因子,OhterVal表示所述其他顺序影响因子;X表示地标横坐标的公里值,小数部分向下取整;Y表示地标纵坐标的公里值,小数部分向下取整。4.一种索引建立系统,其特征在于,该系统包括:分词模块、排序因子计算模块和倒排表建立模块,其中, 所述分词模块,用于对每个输入样本中的样本关键词进行分词处理得到索引关键词; 所述排序因子计算模块,用于根据每个输入样本中的地标值分别计算对应的排序因子;所述倒排表建立模块,用于以索引关键词为索引建立倒排表,所述倒排表中的各索引项包括与所述索引关键词相对应的排序因子和地标值,且在各索引项中,将相同的排序因子所对应的地标值聚集在一起。5.根据权利要求4所述索引建立系统,其特征在于,所述排序因子计算模块进一步用于,将空间索引与其他顺序影响因子的组合值作为排序因子, 其中,所述空间因子由所述排序因子计算模块根据所述地标值计算得到,所述其他顺序影响因子由所述排序因子计算模块根据具体业务需求确定。6.根据权利要求5所述索引建立系统,其特征在于,ScoreVal=SpaceID+0hterVal/1000.0,SpaceID = X*100000+Y ; 其中,ScoreVal表示所述排序因子,SpaceID表示所述空间因子,OhterVal表示所述其他顺序影响因子;X表示地标横坐标的公里值,...

【专利技术属性】
技术研发人员:刘元芳周晓波
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1