搜索数据库中字符串的方法和装置制造方法及图纸

技术编号:7627559 阅读:278 留言:0更新日期:2012-08-01 20:45
本发明专利技术提供一种搜索数据库中字符串的方法和装置,涉及数据搜索领域,为解决现有技术中搜索字符串的速度比较慢的技术问题而发明专利技术。所述方法包括:步骤1,获取用户在预定输入法模式下输入的第一编码串;步骤2,将所述第一编码串转化成预定位数的第一二进制数;步骤3,在数据库中,搜索大于或等于所述第一二进制数的二进制数,其中,所述数据库中包含字符串和所述字符串的输入法编码串对应的二进制数;步骤4,查找搜索出的所述二进制数对应的字符串;步骤5,输出查找出的所述字符串。本发明专利技术能加快搜索速度。

【技术实现步骤摘要】

本专利技术涉及数据搜索领域,特别是指一种搜索数据库中字符串的方法和装置
技术介绍
电话本搜索速度很大程度影响用户搜索时的体验,如果电话本搜索返回结果慢,用户会感觉手机难用,性能低下。目前电话本搜索算法为遍历、二分查找等,大多数都是基于字符串进行比较,来判断输入字串是否命中联系人。由于基于字符串进行比较,当要搜索的数据量较大,并且CPU速度较慢时,可能会耗时较久,影响用户体验。
技术实现思路
本专利技术要解决的技术问题是提供一种在搜索数据库中字符串的方法和装置,能够提高搜索速度。为解决上述技术问题,本专利技术的实施例提供技术方案如下一方面,提供一种搜索数据库中字符串的方法,所述方法包括步骤1,获取用户在预定输入法模式下输入的第一编码串;步骤2,按照编码转换方法,将所述第一编码串转化成预定位数的第一二进制数;步骤3,在数据库中,搜索大于或等于所述第一二进制数的二进制数,其中,所述数据库中包含字符串和所述字符串的输入法编码串按照所述编码转换方法对应的二进制数;步骤4,查找搜索出的所述二进制数对应的字符串;步骤5,输出查找出的所述字符串。所述步骤3之前,所述方法还包括按照所述预定输入法中基本编码的预定顺序,获取所述第一编码串中的最后一个编码在所述预设顺序中的下一个编码;使用所述下一个编码代替所述第一编码串中的最后一个编码,生成第二编码串;将所述第二编码串转化为所述预定位数的第二二进制数;所述步骤3具体为搜索大于或等于所述第一二进制数并且小于所述第二二进制数的二进制数。所述步骤2包括步骤21,根据所述预定输入法的基本编码和自然数之间的预定对应关系,分别获取所述第一编码串的每个编码对应的自然数;步骤22,将每个所述自然数转化为第三二进制数;步骤23,根据每个编码在所述第一字符串中的位置,获取所述第三二进制数的左移位数;步骤24,根据所述左移位数,分别将所述第三二进制数进行左移位,并且在低位补O ;步骤25,将移位后的所述第三二进制数进行或运算或者相加运算,生成所述第一二进制数。所述步骤23为根据以下公式计算左移位数=第一二进制数的预定长度-I*N_J ;其中,I为所述编码在所述第一编码串从左到右的序号,I为大于O的整数;N根据所述预定输入法的基本编码的数量设定根据所述预定输入法的基本编码的数量、所述第一二进制数的预定长度以及所述第一二进制数是否是有符号数来确定。所述输入法为拼音输入法;所述预定输入法中基本编码为26个拼音字母;所述步骤21为根据预先设定的A至Z的26个字母和26个自然数之间预先建立的一对一的关系,获取每个字符对应的自然数。所述输入法为笔画输入法;所述预定输入法中基本编码为横、竖、撇、点、折;所述步骤21为根据预先设定的横、竖、撇、点、折和5个自然数之间预先建立的一对一的关系,获取每个字符对应的自然数。另一方面,提供一种搜索数据库中字符串的装置,其特征在于,包括第一获取单元,获取用户在预定输入法模式下输入的第一编码串;第一转化单元,将所述第一编码串转化成预定位数的第一二进制数;搜索单元,在数据库中,搜索大于或等于所述第一二进制数的二进制数,其中,所述数据库中包含字符串和所述字符串的输入法编码串对应的二进制数;查找单元,查找搜索出的所述二进制数对应的字符串;输出单兀,输出查找出的所述字符串。所述的搜索数据库中字符串的装置,还包括第二获取单元,按照所述预定输入法中基本编码的预定顺序,获取所述第一编码串中的最后一个编码在所述预设顺序中的下一个编码;生成单元,使用所述下一个编码代替所述第一编码串中的最后一个编码,生成第二编码串;第二转化单元,将所述第二编码串转化为所述预定位数的第二二进制数;所述搜索单元具体为搜索大于或等于所述第一二进制数并且小于所述第二二进制数的保存在数据库中的待搜索字串转化成的二进制数。所述第一转化单元包括第一获取子单元,根据所述预定输入法的基本编码和自然数之间的预定对应关系,分别获取所述第一编码串的每个编码对应的自然数;转化子单元,将每个所述自然数转化为第三二进制数;第二获取子单元,根据每个编码在所述第一字符串中的位置,获取所述第三二进制数的左移位数;左移处理子单元,根据所述左移位数,分别将所述第三二进制数进行左移位,并且在低位补O ;运算子单元,将移位后的所述第三二进制数进行或运算或者相加运算,生成所述第一二进制数。当所述输入法为拼音输入法时;所述预定输入法中基本编码为26个拼音字母;所述第一获取子单元为根据预先设定的A至Z的26个字母和26个自然数之间预先建立的一对一的关系,获取每个字符对应的自然数;或者当所述输入法为笔画输入法时,所述预定输入法中基本编码为横、竖、撇、点、折;所述第一获取子单元为根据预先设定的横、竖、撇、点、折和5个自然数之间预先建立的一对一的关系,获取每个字符对应的自然数。本专利技术的实施例具有以下有益效果上述方案中,在进行检索时,将输入的输入法编码串转化为数字,将待选字符串也转化为数字,并通过数字大小比较来判断输入的编码串是否命中待选字符串,大幅加快判断是否命中的速度。附图说明图1为本专利技术所述的在搜索数据库中字符串的方法的一实施例的流程示意图;图2为本专利技术所述的搜索数据库中字符串的方法的另一实施例的流程示意图;图3为本专利技术所述的搜索数据库中字符串的装置的结构示意图。具体实施例方式为使本专利技术的实施例要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。如图I所示,为本专利技术所述的搜索数据库中字符串的方法,所述方法包括步骤11,获取用户在预定输入法模式下输入的第一编码串;第一编码串为根据输入法确定的,例如,用户希望搜索“李四”,输入法为拼音输入法,用户输入的编码串为“lisi”。,步骤12,按照编码转换方法,将所述第一编码串转化成预定位数的第一二进制数;步骤13,在数据库中,搜索大于或等于所述第一二进制数的二进制数,其中,所述数据库中包含所述字符串的输入法编码串对应的二进制数;其中,所述字符串的输入法编码串对应的二进制数为按照同步骤12的方法(所述编码转换方法)将输入法编码串转化而生成的。步骤14,查找搜索出的所述二进制数对应的字符串;步骤15,输出查找出的所述字符串。如图2所示,为本专利技术所述的搜索数据库中字符串的方法,所述方法包括步骤21,获取用户在预定输入法模式下输入的第一编码串;步骤22,将所述第一编码串转化成预定位数的第一二进制数;步骤23,按照所述预定输入法中基本编码的预定顺序,获取所述第一编码串中的最后一个编码在所述预设顺序中的下一个编码;步骤24,使用所述下一个编码代替所述第一编码串中的最后一个编码,生成第二编码串;步骤25,将所述第二编码串转化为所述预定位数的第二二进制数;步骤26,在数据库中,搜索大于或等于所述第一二进制数并且小于所述第二二进制数的二进制数。其中,所述数据库中包含字符串和所述字符串的输入法编码串对应的二进制数;步骤27,查找搜索出的所述二进制数对应的字符串;步骤28,输出查找出的所述字符串。所述步骤22包括步骤221,根据所述预定输入法的基本编码和自然数之间的预定对应关系,分别获取所述第一编码串的每个编码对应的自然数;步骤222,将每个所述自然数转化为第三二进制数;步骤223,根据每个编码在所述第一字符串本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:毛岱山杨万丽
申请(专利权)人:联想移动通信科技有限公司
类型:发明
国别省市:

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

1
相关领域技术