发明内容
本发明实施例提供一种记录索引方法及装置,可以在包括不同语言记录的数据库中快速查找到所需记录。
本发明实施例提供的一种记录索引方法,包括:
对数据库中各记录的名字段或姓字段的unicode码进行判断,确定所述名字段或姓字段的语言机制;根据所述名字段或姓字段的语言机制,结合所述名字段或姓字段的语言机制的语言习惯,对数据库中的记录重新排序;在重新排序后的记录中索引所需记录;
所述根据名字段或姓字段的语言机制,结合所述名字段或姓字段的语言机制的语言习惯,对数据库中的记录重新排序包括:
当名字段或姓字段是与中文相似,姓在前、名在后的语言习惯,则按照姓字段在前、名字段在后的规则拼接出姓名,当是与英文相似,名在前、姓在后的语言习惯,则按照名字段在前、姓字段在后的规则拼接出姓名;
将拼接后的姓名,按照中文拼音或英文字母A-Z的字母顺序进行重新排列。
一种记录索引装置,包括:
判断模块,用于对数据库中的名字段或姓字段的unicode码进行判断,确定所述名字段的语言机制;排序模块,用于根据所述名字段或姓字段的语言机制,结合所述名字段或姓字段的的语言机制的语言习惯,对数据库中的记录重新排序;索引模块,用于在重新排序后的记录中索引所需记录;
所述排序模块包括:
姓名拼接模块,用于当名字段或姓字段是与中文相似,姓在前、名在后的语言习惯,则按照姓字段在前、名字段在后的规则拼接出姓名,当是与英文相似,名在前、姓在后的语言习惯,则按照名字段在前、姓字段在后的规则拼接出姓名;
排序子模块,用于将拼接后的姓名,按照中文拼音或英文字母A-Z的字母顺序进行重新排列。
本发明实施例通过对数据库中的名(First name)字段的unicode(统一的字符编码标准,采用双字节对字符进行编码)码的判断,确定该字段的语言机制,再根据相应语言机制的语言习惯,对数据库中的记录重新排序,在重新排序后的记录中索引所需的记录,可以实现在包括不同语言记录的数据库中快速查找到所需记录。
具体实施方式
下面结合附图详细说明本发明实施例的技术方案。
本发明提供的记录索引方法的实施例,如图1所示,包括:
步骤101、对数据库中各记录的名(First name)字段的unicode码进行判断,确定所述名字段的语言机制。
步骤102、根据所述名字段的语言机制,结合所述名字段的语言机制的语言习惯,对数据库中的记录重新排序。
例如,数据库中有名(First name)字段和姓(Last name)字段,根据名字段的unicode码判断该名字段中的内容是什么语言,如果是与中文相似,姓在前、名在后的语言习惯,则按照姓字段在前、名字段在后的规则拼接出姓名,如果是与英文相似,名在前、姓在后的语言习惯,则按照名字段在前、姓字段在后的规则拼接出姓名。然后将拼接后姓名重新排序,例如,中文按拼音,英文按字母,按照A-Z的字母顺序进行排列。
当然,也可以根据姓(Last name)字段的的unicode码进行判断确定所述姓字段的语言机制。
步骤103、在重新排序后的记录中索引所需记录。
具体在重新排序后的记录中索引的方式,可以采用二分查找,或者以及逐级筛选的方法来索引所需记录。
在混合了中文和英文的数据库中,用户只需要根据中文姓在前、名在后,英文名在前、姓在后的语言习惯进行全字符匹配或首字母匹配,就可以快速的查找到所需记录。对那些仅姓字段匹配或仅名字段匹配的记录可以显示在最后。
下面以电话簿为例,进一步说明本发明方法实施例的技术方案。
例如,电话簿中有以下几条混合不同语言的记录:
First Name Last Name
Georg Ford
Frank Goethe
峰国 高
高河 付
Fred 范
Edward 熊
首先,对名(First Name)字段的unicode码进行判断,确定各名字段属于哪种语言。然后按照所属语言相应的语言习惯对电话簿中的记录,按照中文拼音和英文A-Z字母顺序,进行重新排序如下:
Edward 熊
Frank Goethe
Fred 范
付 高河
高 峰国
GeorgFord
再在重新排序后的记录中索引所需记录。例如,当输入F时,按照F的二分查找方法先查找到第一个字段的首中文拼音或首英文字母为F的记录,如下:
Frank Goethe
Fred 范
付 高河
如果还想进一步精确查找的话,例如,查找第一个字段的首中文拼音或首英文字母为F,第二个字段的首中文拼音或首英文字母为G的记录,则可以再输入G,即输入“FG”,在已经筛选出的第一个字段的首中文拼音或首英文字母为F的记录中,匹配第二个字段的首中文拼音或首英文字母是否为G,查找到记录如下:
Frank Goethe
付 高河
在现实情况中,还可能存在一种情况,用户只记得名,或只记得姓,为了进一步提供精确、人性化的快速索引记录的方法,在查找到的第一个字段首中文拼音或首英文字母为F的记录后,追加第二个字段首中文拼音或首英文字母为F的记录。例如,用户输入F时,按照F的二分查找方法先查找到第一个字段或者第二个字段的首中文拼音或首英文字母为F的记录,如下:
Frank Goethe
Fred 范
付 高河
+
高 峰国
GeorgFord
以上“+”符合表示以下为追加的记录,当然也可以采用其他符号表示。
如果还想进一步精确查找的话,例如,查找第一个字段的首中文拼音或首英文字母为F,第二个字段的首中文拼音或首英文字母为G的记录,或者第二个字段的首中文拼音或首英文字母为F,第一个字段的首中文拼音或首英文字母为G的记录,则可以再输入G,即输入“FG”,在已经筛选出的第一个字段或者第二个字段的首中文拼音或首英文字母为F的记录中,匹配第二个字段或者第一个字段的首中文拼音或首英文字母是否为G,查找到记录如下:
Frank Goethe
付 高河
+
高 峰国
通过以上方法,可以进一步精确、快速,并且人性化的查找记录。
相应地,本发明实施例还提供了一种记录索引装置,包括:
判断模块21,用于对数据库中的名(First name)字段或姓(Last name)字段的unicode码进行判断,确定所述名字段的语言机制。
排序模块22,用于根据所述名字段或姓字段的语言机制,结合所述名字段或姓字段的的语言机制的语言习惯,对数据库中的记录重新排序。
索引模块23,用于在重新排序后的记录中索引所需记录。
其中,排序模块22包括:姓名拼接模块221,用于当名字段或姓字段是与中文相似,姓在前、名在后的语言习惯,则按照姓字段在前、名字段在后的规则拼接出姓名,当是与英文相似,名在前、姓在后的语言习惯,则按照名字段在前、姓字段在后的规则拼接出姓名;排序子模块222,用于将拼接后的姓名,按照中文拼音或英文字母A-Z的字母顺序进行重新排列。
索引模块23包括:第一索引子模块,用于采用二分查找方法,或者以及逐级筛选方法,在重新排序后的记录中查找所需记录。
所述第一索引子模块可以包括第二索引子模块,用于按照二分查找方法查找到第一个字段的首中文拼音或首英文字母符合要求的记录。所述第二索引子模块,还可以用于按照二分查找方法查找到第一个字段的首中文拼音或首英文字母符合要求,并且第二个字段的首中文拼音或首英文字母符合要求的记录。
所述第一索引子模块也可以包括第三索引子模块,用于按照二分查找方法查找到第一个字段或者第二个字段的首中文拼音或首英文字母符合要求的记录。所述第三索引子模块,还可以用于按照二分查找方法查找到第一个字段的首中文拼音或首英文字母符合要求,并且第二个字段的首中文拼音或首英文字母符合要求的记录,以及,或者第二个字段的首中文拼音或首英文字母符合要求,并且第一个字段的首中文拼音或首英文字母符合要求的记录。
本发明实施例通过对数据库中的名(First name)字段的unicode(统一的字符编码标准,采用双字节对字符进行编码)码的判断,确定该字段的语言机制,再根据相应语言机制的语言习惯,对数据库中的记录重新排序,在重新排序后的记录中索引所需的记录,可以实现在包括不同语言记录的数据库中快速查找到所需记录。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台设备执行本发明各个实施例所述的方法。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。