一种关键词搜索方法、装置和搜索引擎制造方法及图纸

技术编号:21628896 阅读:26 留言:0更新日期:2019-07-17 11:04
本申请公开了一种关键词搜索方法、装置和搜索引擎,所述方法包括:获取关键词和字典倒排树,所述字典倒排树包括:一个根节点和至少一条分支,每条所述分支包含至少一个字符节点和一个索引节点,一个所述字符节点包含一个字符,所述索引节点上包含索引编号,用于指示该索引编号所在分支对应的文档编号;根据所述关键词,在所述字典倒排树中查找目标分支,所述目标分支上的字符节点与所述关键词中的字符相匹配;根据所述目标分支的索引节点,获取所述目标分支对应的索引编号。本方法采用索引编号指示文档编号的方式相比于以哈希表的方式指示,占用资源较少,节约了存储空间。

A Keyword Search Method, Device and Search Engine

【技术实现步骤摘要】
一种关键词搜索方法、装置和搜索引擎
本申请涉及信息搜索领域,尤其涉及一种关键词搜索方法、装置和搜索引擎。
技术介绍
智能手机时代,随着用户在手机中存储的数据越来越多,对搜索的需求也越来越大。例如,用户手机往往存储有成千上万张照片,且每张照片都包括如时间、地点、名称、分类等多个属性的信息,如果用户在这成千上万张照片中手动查找自己想要的照片,将十分麻烦,因此需要一种高效智能的搜索引擎(searchengine,SE)来提供简单、便利的搜索服务,以提高用户的搜索体验。索引是搜索引擎中的一个核心部件,它是实现“单词-文档矩阵”的具体数据结构,“单词-文档矩阵”描述了某篇文档包含了哪些单词,以及某个单词出现在哪些文档中等信息。实现这一具体数据结构的常用技术方案是倒排索引(Invertedindex)。所述倒排索引主要是根据属性值来查找记录。在倒排索引表中包括某个单词在一个文档或者一组文档中的存储位置,该存储的位置一般用文档编号来表示,因此,通过倒排索引能够搜索出单词所在的文档编号。但是,目前通过倒排索引查找关键词所对应的文档编号,若采用线性的倒排索引,查询和搜索时需要遍历整个索引,耗时较长,搜索速度较慢。若采用哈希表形式的倒排索引,则需要占用大量的存储资源,相比线性结构的存储资源大5至7倍,所以如何通过倒排索引提供一种速度快,占用资源少的搜索方法,是本领域人员亟待解决的技术问题。
技术实现思路
本申请提供了一种关键词搜索方法、装置和搜索引擎,以解决目前采用的倒排索引搜索关键词时速度慢、占用资源大的问题。第一方面,本申请提供了一种关键词搜索方法,所述方法应用于由字典树和倒排索引组成的字典倒排树中,具体地,该方法包括:获取关键词和字典倒排树,所述字典倒排树包括:一个根节点,与所述根节点相连接的至少一条分支,其中,每条所述分支包含至少一个字符节点和一个索引节点,一个所述字符节点包含一个字符,所述一个字符包括一个汉字、字母、数字等,所述索引节点上包含索引编号,所述索引编号用于指示该索引编号所在分支对应的文档编号,且所述索引节点位于所述一条分支的最末端;所述方法还包括根据所述关键词,在所述字典倒排树中查找目标分支,所述目标分支上的字符节点与所述关键词中的字符相匹配,所述关键词包含至少一个字符;以及根据所述目标分支的索引节点,获取所述目标分支对应的索引编号,其中,所述关键词通过文档或文档集合获得。结合第一方面,在第一方面的一种实现方式中,所述目标分支上的字符节点与所述关键词中的字符相匹配,包括:所述目标分支上的字符节点所包含的字符与所述关键词中相同字符的个数占所述关键词的总字符数的比值大于阈值,当所述阈值为1时,表示所述目标分支上的字符与所述关键词所包含的字符相同,本方面通过匹配目标分支的字符数与关键词中总字符数的比值,能快速地在字典倒排树中确定包含所述关键词的目标分支,进而实现了对关键词的精确查找。结合第一方面,在第一方面的另一种实现方式中,所述方法还包括:根据所述索引编号在线性倒排表中查找所述关键词的文档编号,所述线性倒排表中包括至少一个索引编号和与每个所述索引编号对应的文档编号,另外,所述线性倒排表中还包括至少一个关键词,且每个关键词与一个索引编号具有唯一的对应关系且每个所述索引编号对应至少一个文档编号,本方面通过线性倒排表建立了索引编号与文档编号的对应关系,进而能够根据目标分支的索引编号快速地查找到对应的文档编号,。结合第一方面,在第一方面的另一种实现方式中,所述方法还包括:判断所述字典倒排树中一条分支的字符节点上的字符与所述关键词的字符不相同的个数是否在预设值之内;如果在所述预设值之内,则根据所述分支上的字符节点的字符对所述不相同的字符进行纠错。本方面的方法提供了一种纠错功能,可以纠正用户输入关键词时的错别字,实现了智能的搜索引擎功能。结合第一方面,在第一方面的又一种实现方式中,所述对不相同的字符进行纠错,包括:确定与所述关键词不相同的字符;根据拼音或字形规则在所述字典倒排树的一条分支中查找与所述不相同字符相近似的字符;利用所述相近似的字符替换所述不相同的字符。此外,还可以通过其它方式,例如预设算法等确定查找与所述相近似的字符,本申请对此不做限定。结合第一方面,在第一方面的又一种实现方式中,如果所述关键词对应的文档编号的个数为两个或两个以上时,则所述确定的至少两个文档编号按照所述线性倒排表中文档编号的顺序排序。本方面按照文档编号对字典倒排树中搜索的关键词所对应的文档进行自动排序,方便用户查找关键词对应的相关文档。结合第一方面,在第一方面的又一种实现方式中,如果查找多个关键词所对应的文档编号,则所述方法还包括:将每个关键词分别在所述字典倒排树中进行遍历,并输出每个所述关键词所对应的文档编号,其中,每个关键词所对应的文档编号组一个文档编号集合;统计所有关键词所对应的所有文档编号集合,筛选所有集合中的交集作为目标集合;输出所述目标集合中的文档编号,作为所述多个关键词所对应的文档编号。本方面提供了一种多个关键词搜索的功能,实现了多条件简单快速地搜索对应的文档,提高了搜索效率。结合第一方面,在第一方面的又一种实现方式中,所述字典倒排树还包括至少一个公共字符节点,一个所述公共字符节点连接有至少两个字符节点,形成至少两条分支,所述至少两条分支均包含所述一个公共字符节点,其中,所述两条分支的字符所组成的关键词中,从所述根节点到所述公共字符节点共用相同的字符,从所述公共字符节点的第一个字符节点到每条分支的末端字符节点所对应的字符不同。本方面提供的方法,利用字典倒排树的结构特点,遍历关键词中每个字符,若存在与关键词相同的分支,则提取该分支的索引字段,并按照该索引字段的指示查找到该关键词在线性倒排表中对应的文档编号。由于采用索引字段指示文档编号相比于以哈希表的方式指示,占用资源较少,所以节约了存储空间,另外,通过逐字遍历关键词的字符,并获取在字典倒排树中包括关键词的目标分支的索引编号,避免遍历整个索引,节约了搜索耗时,提高了搜索效率。此外,根据字典倒排树还提供一种搜索扩展或查询扩展功能。随着用户输入的关键词,搜索引擎将实时的提示出以输入为前缀的关键词给客户,进一步地提高了搜索效率。第二方面,本申请还提供了一种关键词搜索装置,该装置包括:获取单元、处理单元和发送单元等。获取单元,用于获取关键词和字典倒排树,所述字典倒排树包括:一个根节点,与所述根节点相连接的至少一条分支,其中,每条所述分支包含至少一个字符节点和一个索引节点,一个所述字符节点包含一个字符,所述索引节点上包含索引编号,所述索引编号用于指示该索引编号所在分支的对应的文档编号;处理单元,用于根据所述关键词,在所述字典倒排树中查找目标分支,所述目标分支上的字符节点与所述关键词中的字符相匹配;所述获取单元,还用于根据所述目标分支的索引节点,获取所述目标分支对应的索引编号。结合第二方面,在第二方面的一种实现方式中,所述处理单元,具体用于在所述字典倒排树中查找目标分支,所述目标分支上的字符节点所包含的字符与所述关键词中相同字符的个数占所述关键词的总字符数的比值大于阈值。结合第二方面,在第二方面的另一种实现方式中,所述处理单元,具体还用于根据所述索引编号,在线性倒排表中查找所述本文档来自技高网...

【技术保护点】
1.一种关键词搜索方法,其特征在于,方法包括:获取关键词和字典倒排树,所述字典倒排树包括:一个根节点,与所述根节点相连接的至少一条分支,其中,每条所述分支包含至少一个字符节点和一个索引节点,一个所述字符节点包含一个字符,所述索引节点上包含索引编号,所述索引编号用于指示该索引编号所在分支对应的文档编号;根据所述关键词,在所述字典倒排树中查找目标分支,所述目标分支上的字符节点与所述关键词中的字符相匹配;根据所述目标分支的索引节点,获取所述目标分支对应的索引编号。

【技术特征摘要】
1.一种关键词搜索方法,其特征在于,方法包括:获取关键词和字典倒排树,所述字典倒排树包括:一个根节点,与所述根节点相连接的至少一条分支,其中,每条所述分支包含至少一个字符节点和一个索引节点,一个所述字符节点包含一个字符,所述索引节点上包含索引编号,所述索引编号用于指示该索引编号所在分支对应的文档编号;根据所述关键词,在所述字典倒排树中查找目标分支,所述目标分支上的字符节点与所述关键词中的字符相匹配;根据所述目标分支的索引节点,获取所述目标分支对应的索引编号。2.根据权利要求1所述的方法,其特征在于,所述目标分支上的字符节点与所述关键词中的字符相匹配,包括:所述目标分支上的字符节点所包含的字符与所述关键词中相同字符的个数占所述关键词的总字符数的比值大于阈值。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据所述索引编号,在线性倒排表中查找所述关键词的文档编号,所述线性倒排表中包括至少一个索引编号和与每个所述索引编号对应的文档编号。4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:判断所述字典倒排树中一条分支的字符节点上的字符与所述关键词的字符不相同的个数是否在预设值之内;如果在所述预设值之内,则根据所述分支上的字符节点的字符对所述不相同的字符进行纠错;。5.根据权利要求4所述的方法,其特征在于,所述对不相同的字符进行纠错,包括:确定与所述关键词不相同的字符;根据拼音或字形规则在所述字典倒排树的一条分支中查找与所述不相同字符相近似的字符;利用所述相近似的字符替换所述不相同的字符。6.根据权利要求3所述的方法,其特征在于,如果所述关键词对应的文档编号的个数为两个或两个以上时,则所述确定的至少两个文档编号按照所述线性倒排表中文档编号的顺序排序。7.根据权利要求3所述的方法,其特征在于,如果查找多个关键词所对应的文档编号,则所述方法还包括:将每个关键词分别在所述字典倒排树中进行遍历,并输出每个所述关键词所对应的文档编号,其中,每个关键词所对应的文档编号组一个文档编号集合;统计所有关键词所对应的所有文档编号集合,筛选所有集合中的交集作为目标集合;输出所述目标集合中的文档编号,作为所述多个关键词所对应的文档编号。8.根据权利要求1-7任一项所述的方法,其特征在于,所述字典倒排树还包括至少一个公共字符节点,一个所述公共字符节点连接有至少两个字符节点,形成至少两条分支,所述至少两条分支均包含所述一个公共字符节点。9.一种关键词搜索装置,其特征在于,装置包括:获取单元,用于获取关键词和字典倒排树,所述字典倒排树包括:一个根节点,与所述根节点相连接的至少一条分支,其中,每条所述分支包含至少一个字符节点和一个索引节点,一个所述字符节点包含一个字符,所述索引节点上包含索引编号,所述索引编号用于指示该索引编号所在分支的对应的文档编号;处理单元,用于根据所述关键词,在所述字典倒排树中查找目标分支,所述目标分支上的字符节点与所述关键词中的字符相匹配;所述获取单元,还用于根据所述目标分支的索引节点,获取所述目标分支对应的索引编号。10.根据权利要求9所述的装置,其特征在于,所述处理单元,具体用于在所述字典倒排树中查找目标分支,所述目标分支...

【专利技术属性】
技术研发人员:夏飞金鑫刘权
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1