一种建立、搜索索引树的方法及装置制造方法及图纸

技术编号:21628900 阅读:63 留言:0更新日期:2019-07-17 11:04
本发明专利技术实施例提供了一种建立索引树的方法、装置以及一种搜索索引树的方法、装置,该建立索引树的方法包括:获取源数据中的第一字符;基于所述第一字符建立第一子索引树,如果所述第一字符为汉字,则所述第一子索引树包括以所述第一字符的各个拼音字母命名的节点,所述第一子索引树包括至少一个节点;在索引树的第一根节点中插入第一指针数组,所述指针数组指向所述第一子索引树的第二根节点,如果所述第一字符为汉字,则所述第二根节点为以所述第一字符的拼音首字母命名的节点。本发明专利技术使用索引树构建被搜索的文本数据,在利用该索引树搜索联系人时,能够利用指针数组快速搜索出与关键字匹配源数据,并且搜索过程简单,降低了对终端CPU资源的占用。

A Method and Device for Establishing and Searching Index Tree

【技术实现步骤摘要】
一种建立、搜索索引树的方法及装置
本专利技术涉及终端的信息处理
,具体涉及一种建立索引树的方法、装置及一种搜索索引树的方法、装置。
技术介绍
以手机、平板电脑为首的终端都具有通讯录应用。一般而言,用户通讯录的数据量在一两百人至数千人之间不等。所以,通讯录应用配置有关键字搜索功能,以利用关键字快速搜索出用户欲查找的联系人。目前,终端可以利用模糊匹配的方法搜索联系人。具体步骤为:获取关键字字符串,并提取关键字字符串的特征值,然后将该特征值依次与数据库中的联系人信息进行匹配。数据库中的联系人信息包括汉字,汉字对应的拼音,拼音缩写以及拼音转码成拇指键盘后对应的数字序列。当匹配出多个联系人信息后,再按照匹配优先级进行加权排序并输出相应的联系人。这种匹配算法需要对数据库中全部的联系人信息执行一次遍历操作,也需要对各个联系人信息中各类信息进行一次匹配计算,算法较繁琐,不仅影响通讯录应用响应速度,而且会占用终端CPU资源,从而影响终端整机的运行速度。
技术实现思路
本专利技术实施例提供一种建立索引树的方法、装置以及一种搜索索引树的方法、装置,用以快速搜索出用户预查找的联系人。第一方面,本专利技术实施例中提供了一种建立索引树的方法,包括:获取源数据中的第一字符;基于所述第一字符建立第一子索引树,如果所述第一字符为汉字,则所述第一子索引树包括以所述第一字符的各个拼音字母命名的节点,所述第一子索引树包括至少一个节点;在索引树的第一根节点中插入第一指针数组,所述指针数组指向所述第一子索引树的第二根节点,如果所述第一字符为汉字,则所述第二根节点为以所述第一字符的拼音首字母命名的节点。进一步地,所述方法还包括:获取源数据中的第二字符,所述第二字符为所述源数据中所述第一字符的下一个字符;在所述第一子索引树中的叶节点中插入第二指针数组,所述第二指针数组指向所述第二字符对应的第二子索引树的第三根节点,所述第一子索引树中的叶节点为以所述第一字符的末尾拼音字母命名的节点。进一步地,所述方法还包括:如果所述第一字符为非汉字字符,则所述第一子索引树包括一个以所述第一字符命名的节点,所述第一子索引树的第二根节点与叶节点为同一个节点。进一步地,基于所述第一字符建立第一子索引树的步骤,包括:如果所述第一字符为汉字,确定所述第一根节点中是否存在第三指针数组,所述第三指针数组指向的第一节点的名称与所述第一字符的拼音首字母相同;如果存在,则确定所述第一节点的子节点的名称中是否存在与所述第一字符的第二个拼音字母相同的字母;如果不存在与所述第一字符的第二个拼音字母相同的字母,则基于所述第一字符的拼音首字母之后的各个拼音字母建立至少一个第二节点;利用所述第一节点以及各个所述第二节点建立所述第一子索引树,所述第一子索引树中的各个节点组成的路径与所述第一字符的拼音字母顺序相同。进一步地,在索引树的第一根节点中插入第一指针数组,所述指针数组指向所述第一子索引树的第二根节点的步骤,包括:确定所述第一子索引树中的第二根节点;基于所述第二根节点的名称确定用于指向所述第二根节点的第一指针数组在第一根节点中的插入位置,所述第一根节点中的指针数组基于其指向的节点的名称进行排列;在所述插入位置中插入所述第一指针数组。进一步地,所述第一指针数组包括所述第二根节点的信息,所述第一字符在所述源数据中的位置信息以及所述源数据的标识;当所述第一字符为汉字时,所述第一指针数组还包括所述第一字符的拼音信息以及所述第一字符的汉字信息。进一步地,所述方法还包括:在所述第一子索引树中的第二根节点中插入第二指针数组,所述第二指针数组指向第二字符对应的第二子索引树的第三根节点,所述第二字符为所述源数据中所述第一字符的下一个字符。第二方面,本专利技术实施例还提供了一种搜索索引树的方法,包括:获取第一关键字;确定与所述第一关键字匹配的第一指针数组,所述第一指针数组为索引树的第一根节点中的指针数组,所述第一根节点中的指针数组指向源数据中各个字符对应的子索引树的第二根节点,当所述第一关键字为汉字时,所述第一指针数组中的汉字信息与所述第一关键字相同;基于所述第一指针数组指向的节点的信息查找与所述第一关键字匹配的第一路径,并定位到所述第一路径的最后一个节点,当所述第一关键字为汉字时,所述第一路径为所述第一关键字对应的第一子索引树,所述第一子索引树包括以所述第一关键字的各个拼音字母命名的节点,所述第一子索引树包括至少一个节点;保存所述第一指针数组;根据所述第一指针数组中的源数据的标识输出相应的源数据。进一步地,确定与所述第一关键字匹配的第一指针数组的步骤包括:当所述第一关键字为非汉字时,所述第一指针数组指向的节点的名称与所述第一关键字相同;基于所述第一指针数组指向的节点的信息查找与所述第一关键字匹配的第一路径,并定位到所述第一路径的最后一个节点的步骤包括:当所述第一关键字为非汉字时,所述第一路径包括所述第一指针数组指向的节点,定位到的节点为所述第一指针数组指向的节点。进一步地,确定与所述第一关键字匹配的第一指针数组的步骤,包括:确定所述第一根节点中排在中间位置的第二指针数组;根据所述第一关键字与所述第二指针数组指向的节点的名称的对比,确定从第二指针数组开始向前查找或向后查找,以查找到与所述第一关键字匹配的第一指针数组。进一步地,所述方法还包括:获取第二关键字,所述第二关键字与所述第一关键字同属于相同的关键字字符串,并且为所述第一关键字的下一个关键字;查找所述定位到的节点下的子节点中是否存在与所述第二关键字匹配的第二路径,所述定位到的节点与所述子节点同属于同一个子索引树;如果存在,根据所述第一指针数组中的拼音信息在所述第一指针数组中确定与所述第二关键字匹配的第三指针数组;保存所述第三指针数组;输出所述第三指针数组对应的源数据。进一步地,获取第二关键字之后,还包括:在所述定位到的节点的指针数组中确定与所述第二关键字匹配的第四指针数组,所述第四指针数组中的源数据的标识与第五指针数组中的源数据的标识相同,并且所述第四指针数组中的位置信息大于该第五指针数组中的位置信息,所述第五指针数组为所述第一指针数组中的一个;基于所述第四指针数组指向的节点的信息查找与所述第二关键字匹配的第三路径;保存所述第四指针数组;输出所述第四指针数组对应的源数据。第三方面,本专利技术实施例还提供了一种建立索引树的装置,包括:获取单元,用于获取源数据中的第一字符。建立单元,用于基于所述第一字符建立第一子索引树,如果所述第一字符为汉字,则所述第一子索引树包括以所述第一字符的各个拼音字母命名的节点,所述第一子索引树包括至少一个节点;插入单元,用于在索引树的第一根节点中插入第一指针数组,所述指针数组指向所述第一子索引树的第二根节点,如果所述第一字符为汉字,则所述第二根节点为以所述第一字符的拼音首字母命名的节点。进一步地,所述获取单元,还用于获取源数据中的第二字符,所述第二字符为所述源数据中所述第一字符的下一个字符;所述插入单元,还用于在所述第一子索引树中的叶节点中插入第二指针数组,所述第二指针数组指向所述第二字符对应的第二子索引树的第三根节点,所述第一子索引树中的叶节点为以所述第一字符的末尾拼音字母命名的节点。进一步地,所述建立单元还用于:如果所述第一字符为汉字,本文档来自技高网...

【技术保护点】
1.一种建立索引树的方法,其特征在于,包括:获取源数据中的第一字符;基于所述第一字符建立第一子索引树,如果所述第一字符为汉字,则所述第一子索引树包括以所述第一字符的各个拼音字母命名的节点,所述第一子索引树包括至少一个节点;在索引树的第一根节点中插入第一指针数组,所述指针数组指向所述第一子索引树的第二根节点,如果所述第一字符为汉字,则所述第二根节点为以所述第一字符的拼音首字母命名的节点。

【技术特征摘要】
1.一种建立索引树的方法,其特征在于,包括:获取源数据中的第一字符;基于所述第一字符建立第一子索引树,如果所述第一字符为汉字,则所述第一子索引树包括以所述第一字符的各个拼音字母命名的节点,所述第一子索引树包括至少一个节点;在索引树的第一根节点中插入第一指针数组,所述指针数组指向所述第一子索引树的第二根节点,如果所述第一字符为汉字,则所述第二根节点为以所述第一字符的拼音首字母命名的节点。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取源数据中的第二字符,所述第二字符为所述源数据中所述第一字符的下一个字符;在所述第一子索引树中的叶节点中插入第二指针数组,所述第二指针数组指向所述第二字符对应的第二子索引树的第三根节点,所述第一子索引树中的叶节点为以所述第一字符的末尾拼音字母命名的节点。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:如果所述第一字符为非汉字字符,则所述第一子索引树包括一个以所述第一字符命名的节点,所述第一子索引树的第二根节点与叶节点为同一个节点。4.根据权利要求1所述的方法,其特征在于,基于所述第一字符建立第一子索引树的步骤,包括:如果所述第一字符为汉字,确定所述第一根节点中是否存在第三指针数组,所述第三指针数组指向的第一节点的名称与所述第一字符的拼音首字母相同;如果存在,则确定所述第一节点的子节点的名称中是否存在与所述第一字符的第二个拼音字母相同的字母;如果不存在与所述第一字符的第二个拼音字母相同的字母,则基于所述第一字符的拼音首字母之后的各个拼音字母建立至少一个第二节点;利用所述第一节点以及各个所述第二节点建立所述第一子索引树,所述第一子索引树中的各个节点组成的路径与所述第一字符的拼音字母顺序相同。5.根据权利要求1所述的方法,其特征在于,在索引树的第一根节点中插入第一指针数组,所述指针数组指向所述第一子索引树的第二根节点的步骤,包括:确定所述第一子索引树中的第二根节点;基于所述第二根节点的名称确定用于指向所述第二根节点的第一指针数组在第一根节点中的插入位置,所述第一根节点中的指针数组基于其指向的节点的名称进行排列;在所述插入位置中插入所述第一指针数组。6.根据权利要求1所述的方法,其特征在于,所述第一指针数组包括所述第二根节点的信息,所述第一字符在所述源数据中的位置信息以及所述源数据的标识;当所述第一字符为汉字时,所述第一指针数组还包括所述第一字符的拼音信息以及所述第一字符的汉字信息。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述第一子索引树中的第二根节点中插入第二指针数组,所述第二指针数组指向第二字符对应的第二子索引树的第三根节点,所述第二字符...

【专利技术属性】
技术研发人员:宋昊文
申请(专利权)人:北京新媒传信科技有限公司
类型:发明
国别省市:北京,11

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

1