快速比对搜寻字串的电子装置及方法

文档序号:6416103阅读:90来源:国知局

专利名称::快速比对搜寻字串的电子装置及方法
技术领域
:本发明是关于一种快速比对搜寻字串的电子装置及方法,其适用范围包括应用于允许利用万用字元(wildcard)进行搜寻的电子装置中。
背景技术
:按,一般使用者在操作电子装置以搜寻资料或档案时,除直接输入完整资料字串来进行搜寻外,亦可辅以万用字元的功能,以提升搜寻到与所输入的查询字串相符的资料的机率。公知广为人使用的万用字元包括「?」及「*」,其中,「?」代表一个字元,例如当查询字串为「??aaa」时,电子装置所欲搜寻的目标字串即为五个字元,且其中第一及第二个字元不限、而第三至第五个字元需为「aaa」;「*」则代表任意字元或无字元,例如当查询字串为「*bb*」时,电子装置需搜寻所有字串中包含有「bb」的字串;当然查询字串中亦可同时结合「*」,以符合使用者需求来进行搜寻。公知电子装置通常是根据查询字串以直接在资料库中从第一个关键字开始读取进行比对,然而,此举将徒增系统负荷,因此公知亦提出于电子装置中定义一索引表(indextable)的机制,用以储存各字串所对应的记录编号及字串长度,且每一笔记录皆对应至资料库中的某一特定字串,请参阅图1的索引表及图2所示的资料库,例如索引表中的第i笔记录的字串长度为5,则可自资料库中找出第i个字串「kinpo」,余此类推。而当使用者欲使用公知电子装置搜寻字串时,请一并参阅图3的流程图,若所接收到查询字串为「*adz?」(步骤S301),则电子装置将先计算与查询字串相符的目标字串(targetstring)所应具备的最小字串长度(minimumlength)(步骤S302),而根据万用字元的定义,可得知与查询字串「*adz?」相符的目标字串的最小长字串度为「4」。如此一来,电子装置即可自索引表中的第1笔记录开始搜寻(步骤S303),以判断索引表中所记录的字串长度是否大于或等于最小字串长度「4」(步骤S304)。若是,则电子装置将可进一步自资料库的资料库中读取出对应于此记录的目标字串(步骤S305),并于比对出目标字串与查询字串相符时(步骤S306),显示该目标字串(步骤S307)。据此,电子装置将逐一与索引表中的记录进行比对(步骤S305及步骤S309),直到比对完最后一笔记录为止。然而,由于公知电子装置的索引表仅供比对字串长度是否与查询字串的最小字串长度相符,而无进一步筛选过滤程序,且之后仍须逐一自资料库中读取出实际目标字串来进行比对,如此在一来一往的读取比对过程中,将无形增加搜寻时间,并徒增资料库负荷,并非十分理想。由此可知,公知的比对搜寻字串装置与功能仍存在有诸多缺失而有予以改进的必要。
发明内容本发明的主要目的在于提供一种快速比对搜寻字串的电子装置及方法,是于索引表中设计一位元对应(bitmapping)栏位,以利用位元运算(bit-wise)索引技术,以事先滤除不符合条件的字串,进而缩短搜寻时间,并提高查询效率。依据本发明的一特色,提出一快速比对搜寻字串的电子装置,由一微处理器、一输入模组、一显示模组、一索引表、及一资料库所组成。其中,输入模组可供输入一查询字串;显示模组用以显示资料;索引表则储存有复数笔记录,每一笔记录皆定义有一目标字串的记录编号、字串长度、及目标字码(spellcodedestination),此目标字码是储存目标字串所使用到的字元;资料库则储存有复数个目标字串,且每一目标字串对应于索引表中的一记录编号。据此,当本发明的电子装置接收到查询字串时,微处理器将分析此查询字串所对应的最小字串长度、及查询字串所使用的字无形成的来源字码(spellcodesource),并将来源字码与索引表中的目标字码一一比对,以比对出与来源字码相符的目标字码,且目标字码所对应目标字串的字串长度大于或等于最小字串长度时,将自资料库中撷取出目标字串,并于比对目标字串和查询字串相符时,显示此目标字串。依据本发明的另一特色,所提出的快速比对搜寻字串方法,是应用于上述电子装置中。首先接收查询字串;接著分析查询字串所对应的最小字串长度、及来源字码;再比对与来源字码相符的目标字码;且比对出此目标字码对应的目标字串的字串长度大于或等于上述最小字串长度时;将自资料库中撷取出目标字串;并于比对出目标字串与查询字串相符时,显示目标字串。其中,本发明是根据一位元运算(bit-wise)索引技术以将目标字码及来源字码记录为一位元对应(bitmapping)格式。图1为公知索引表的示意图。图2为公知资料库的示意图。图3为公知比对搜寻字串的流程图。图4为本发明一较佳实施例的系统方块图。图5为本发明一较佳实施例的索引表的示意图。图6为本发明一较佳实施例的资料库的示意图。图7为本发明一较佳实施例比对搜寻字串的作动流程图。具体实施例方式为能更了解本发明的技术内容,特举一较佳具体实施例说明如下。请先参阅图4的方块图,本实施例的电子装置1,是由微处理器11、输入模组12、输出模组13、索引表14、及资料库所15组成。为加速使用者使用万用字元(wildcard)对电子装置1进行搜寻的时效、并减轻系统负荷,因此本实施例电子装置1所定义的索引表14如图5所示,其中除定义有资料库15中所储存各目标字串(targetstring)对应的记录编号、与字串长度之外,还针对目标字串建立有一组目标字码(spellcodedestination),由于索引表14是运用位元运算(bit-wise)索引技术,因此目标字码是记录为位元对应(bitmapping)格式,亦即目标字串中有使用到的字元,皆于目标字码中记录为「1」、其余未使用的字元则记录为「0」。例如当目标字串为「at」时,其于索引表14中所对应的目标字码即将字母「a」及「t」所对应的位置记录为「1」、其余为「0」,因而形成「10000000000000000001000000」。需注意的是,在本实施例索引表14所列的资料栏位中,目标字码的栏位长度是定义为26位元,其中每一位元是依序代表A-Z的其中一字母;当然字串长度及目标字码的栏位长度亦可视需求而定,例如当目标字串囊括有数字时,则目标字码的栏位长度将可能扩充为36位元,即包括26个英文字母、与「0」到「9」共10个数字;若目标字串囊括有其他种类文字时,亦可视需求而扩充栏位长度。资料库15中则储存有复数个目标字串,每一目标字串皆对应于索引表14中的记录编号,例如索引表中14记录编号为「1」的记录,将可对应自资料库15中撷取出目标字串「in」,余此类推。当使用者欲使用电子装置1搜寻字串时,请一并参阅图7的流程图,于本实施例中,使用者通过输入模组12所输入的查询字串为「*in」(步骤S701),其中,万用字元「*」代表任意字元或无字元,而另一万用字元「?」则代表一个字元,因此,微处理器11可先计算出与查询字串相符的目标字串(targetstring)所应具备的最小字串长度(minimumlength)为「3」位元(步骤S702),即两个字母「i」及「n」、加上一个未知字「?」,并可针对查询字串建立一组来源字码(spellcodesource)为「00000000100001000000000000」(步骤S703),以将「i」及「n」对应的位置设为「1」。据此,微处理器11即可自索引表14中的第1笔记录开始搜寻比对(步骤S704),而根据位元运算检索技术中的「AND」逻辑运算规则,可知来源字码与第1笔记录的目标字码「10000000000000000001000000」不符(步骤S705),因此微处理器11将此记录是否为索引表14的最后一笔记录(步骤S710),若否,则续将搜寻下一笔记录(步骤S711)。而在第2笔记录中,由于其目标字码恰好与来源字码相符(步骤S705),因此接著将比对对应目标字串的长度是否大于或等于最小字串长度「3」(步骤S706)。然而,因此记录的目标字串长度仅为「2」,其小于「3」,故微处理器11将再继续搜寻索引表14中的后续记录(步骤S710)。于记录编号为「i」的记录中,除了目标字码与来源字码相符外(步骤S705),其目标字串长度「5」亦大于最小字串长度「3」(步骤S706),此时微处理器11方可自资料库15中读取出对应于此记录的目标字串「kinpoi」(步骤S707),并比对目标字串是否符合查询字串「*in」的逻辑(步骤S708)。需注意的是,由于在查询字串中,「in」之后仅允许存在一个字元,因此目标字串「kinpo」是于「in」后尚衔接有两个字元「po」,并不符合查询字串的设定,故微处理器11仍将继续搜寻索引表14中的其他记录(步骤S710)。直到搜寻出与查询字串相符的目标字串,才会在显示模组13中显示出来(步骤S709);当然若于搜寻至最后一笔记录皆未存在有符合查询字串的目标字串时,显示模组13将不会显示任何搜寻结果。根据上述说明,可知本发明先根据索引表的位元对应(bitmapping)格式设计以比对出和查询字串的来源字码相符的目标字码,之后才自资料库中读取出对应目标字串进行比对,如此将可事先滤除不符合条件的字串或单词,以减少自资料库中读取资料的次数及系统负荷,确能提高查询效率,从而加快搜寻速度。上述实施例仅是为了方便说明而举例而已,本发明所主张的权利范围自应以申请专利范围所述为准,而非仅限于上述实施例。权利要求1.一种快速比对搜寻字串的电子装置,包括一微处理器;一输入模组,以供输入一查询字串;一显示模组,以供显示资料;一索引表,储存有复数笔记录,每一记录定义有一目标字串的一记录编号、一字串长度、及一目标字码,该目标字码储存该目标字串所使用的字元;以及一资料库,储存有复数个目标字串,每一目标字串对应于该索引表中的一记录编号;其特征在于当该电子装置接收到该查询字串时,该微处理器分析该查询字串所对应的一最小字串长度、及该查询字串所使用的字元形成的一来源字码,并将该来源字码与该索引表中的该等目标字码一一比对,以比对出与该来源字码相符的目标字码,且该目标字码所对应目标字串的字串长度大于或等于该最小字串长度时,将自该资料库中撷取出该目标字串,并于比对该目标字串与该查询字串相符时,显示该目标字串。2.如权利要求1所述的电子装置,其特征在于其中该目标字码及该来源字码是根据一位元运算索引技术以记录为一位元对应格式。3.如权利要求1所述的电子装置,其特征在于其中该字元为一文字。4.如权利要求1所述的电子装置,其特征在于其中该字元为一数字。5.如权利要求1所述的电子装置,其特征在于其中该查询字串中的一字元为一万用字元。6.如权利要求5所述的电子装置,其特征在于其中该万用字元代表一个字元。7.如权利要求5所述的电子装置,其特征在于其中该万用字元代表任意字元或无字元。8.一种快速比对搜寻字串的方法,包括下列步骤(A)接收一查询字串;(B)分析该查询字串所对应的一最小字串长度、及该查询字串所使用的字元形成的一来源字码;(C)比对出与该来源字码相符的一目标字码,其中,该目标字码是定义于一索引表的其中一笔记录,以指定该笔记录对应的目标字串所使用的字元;(D)根据该索引表,以比对出该笔记录所对应的目标字串的字串长度大于或等于该最小字串长度;(E)自一资料库中撷取出该目标字串;(F)比对出该目标字串与该查询字串相符;以及(G)显示该目标字串。9.如权利要求8所述的方法,其特征在于其中该目标字码及该来源字码是根据一位元运算索引技术以记录为一位元对应格式。10.如权利要求8所述的方法,其特征在于其中该字元为一文字。11.如权利要求8所述的方法,其特征在于其中该字元为一数字。12.如权利要求8所述的方法,其特征在于其中该查询字串中的一字元为一万用字元。13.如权利要求12所述的方法,其特征在于其中该万用字元代表一个字元。14.如权利要求12所述的方法,其特征在于其中该万用字元代表任意字元或无字元。全文摘要本发明是有关于一种快速比对搜寻字串的电子装置及方法,是于接收一查询字串后,先分析查询字串所对应的最小字串长度、及查询字串所使用的字元形成的来源字码,以将来源字码逐一与索引表中的目标字码进行比对;若来源字码与目标字码相符,且目标字码所对应的字串长度大于或等于最小字串长度时,方可进一步自资料库中撷取此目标字码对应的实际目标字串,以与查询字串相比对;若两字串相符合,则电子装置将据以显示搜寻结果。由于本发明的索引表是运用位元运算索引技术进行比对,因此可事先滤除不符条件的字串,进而提高检索效率。文档编号G06F17/30GK1707475SQ200410059300公开日2005年12月14日申请日期2004年6月9日优先权日2004年6月9日发明者陆军申请人:金宝电子(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1