检索方法 【技术领域】
本发明涉及检索方法,更具体地涉及管理软件的全部业务对象的快速检索和定位的方法。
背景技术
在用户的应用系统中,存在大量的数据,通常情况下,这些数据有两种检索方式,一种方式为全文本检索,即以文本字符串为基础数据,按照模糊匹配的方式从整个业务系统中检索所有相关的业务数据。另一种方式是按照固定的数据字段名称从指定的数据表中检索数据。但是,这两种方式各自都有不足之处。
全文本检索方式,往往检索到的数据量非常大,不但检索数据慢,而且由于检索到的结果太多,导致最终用户还要从众多结果中用肉眼去检索自己所需要的数据,实际效率非常低下。而固定的检索方式虽然可以精确地检索到用户所需的数据,但操作复杂,而且不同的结果要从不同的入口进入,操作局限性很大。
因此,需要一种检索方式,能够解决上述两种方法的缺陷。
【发明内容】
为了解决上述两种方式中的缺陷,本发明提出了一种检索方法,其特征在于,包括:步骤S102,建立元数据表,用于存储元数据以及所述元数据之间的关联关系;以及步骤S104,根据用户输入的字符在元数据表所描述的业务数据表中进行检索并返回检索结果。
优选地,步骤S104进一步包括:在所述用户输入的过程中,提示框自动下拉出与输入内容相匹配的内容的下拉列表,其中具有相同名称或编码的不同对象连同其对象类型一起显示在所述下拉列表中。
优选地,在所述用户从所述下拉列表中选定对象后,如果所述用户输入预设符号,则将所述选定对象所对应的属性字段标题显示在下拉列表中;以及
根据所述用户选择的属性字段标题,从相应的元数据表中检索到相应的属性值。
优选地,如果所检索到的所述属性值是引用对象,则将所述引用对象的元数据信息一起返回,以便所述用户继续点击所述预设符号来进行下一层引用对象的检索。
优选地,步骤S102包括建立以下元数据表:菜单信息功能表,用于存储菜单名称和相关界面的地址;表信息数据信息表,用于存储表名称、基本数据条件、用于检索的名称字段名和编码字段;以及字段信息数据属性表,用于存储属性名称、数据表的关联以及属性的引用关系。
其中,所述用户输入的字符包括菜单名称、业务系统中的基础档案名称或单据编码、基础档案或单据的任意数据属性或属性的任意下一级属性。
优选地,所述步骤S104包括:根据所述字符的字节码判断所述字符是否为汉字,并根据判断结果确定优选检索的所述元数据表。在判断所述字符为汉字的情况下,则直接检索名称,否则检索编码。
优选地,上述检索方法进一步包括:为所述元数据表建立索引,以确定检索所述元数据表的顺序。
优选地,上述检索方法进一步包括:在检索到预定数量的匹配项后,自动返回。
根据本发明提出的全对象检索方法,其不仅解决了上述问题,还实现了一种高效的检索定位方式。在业务系统中,可以提供一个统一的文本框作为输入和检索的入口,用户可以输入业务系统中任意数据的名称或者编码,在输入过程中,有着高效便捷的下拉输入提示,确定后即可在系统中快速打开所需要的数据界面,如果最终用户只需要某一条数据的一个属性,还可以继续输入字段标题从而检索到指定属性的数据。由于系统之间数据是彼此关联的,有可能数据的某个属性还有下一个属性,该引擎能够按照对象间的关系检索到任意级次的数据,因此这种检索机制被称为全对象检索引擎。
【附图说明】
图1是示出了根据本发明的检索方法的流程图;以及
图2是示出了根据本发明的实施例的检索方法的流程图。
【具体实施方式】
图1是示出了根据本发明的检索方法的流程图。如图1所示,根据本发明的检索方法包括:步骤S102,建立元数据表,用于存储元数据以及所述元数据之间的关联关系;以及步骤S104,根据用户输入的字符在元数据表所描述的业务数据表中进行检索并返回检索结果。
优选地,步骤S104进一步包括:在所述用户输入的过程中,提示框自动下拉出与输入内容相匹配的内容的下拉列表,其中具有相同名称或编码的不同对象连同其对象类型一起显示在所述下拉列表中。
优选地,在所述用户从所述下拉列表中选定对象后,如果所述用户输入预设符号,则将所述选定对象所对应的属性字段标题显示在下拉列表中;以及
根据所述用户选择的属性字段标题,从相应的元数据表中检索到相应的属性值。
优选地,如果所检索到的所述属性值是引用对象,则将所述引用对象的元数据信息一起返回,以便所述用户继续点击所述预设符号来进行下一层引用对象的检索。
优选地,步骤S102包括建立以下元数据表:菜单信息功能表,用于存储菜单名称和相关界面的地址;表信息数据信息表,用于存储表名称、基本数据条件、用于检索的名称字段名和编码字段;以及字段信息数据属性表,用于存储属性名称、数据表的关联以及属性的引用关系。
其中,所述用户输入的字符包括菜单名称、业务系统中的基础档案名称或单据编码、基础档案或单据的任意数据属性或属性的任意下一级属性。
优选地,所述步骤S104包括:根据所述字符判断所述字符是否为汉字,并根据判断结果确定优选检索的所述元数据表。在判断所述字符为汉字的情况下,则直接检索名称,否则检索编码。
优选地,上述检索方法进一步包括:为所述元数据表建立索引,以确定检索所述元数据表的顺序。
优选地,上述检索方法进一步包括:在检索到预定数量的匹配项后,自动返回。
图2示出了根据本发明的实施例的检索方法的流程图。下面将结合图2具体描述该实施例的应用场景。
一、使用场景描述:
1、界面描述:全文本检索引擎的使用界面非常简单,由一个文本框、一个辅助输入下拉提示框和一个跳转按钮组成。用户在文本框中录入的时候,提示框自动下拉出与之相匹配的内容,用户可以随时点击上下按键选择一个下拉项或用鼠标选择一个下拉项,然后点击跳转按钮或者回车,就自动打开相关页面或弹出相关数据的提示。
2、检索方式:全文本检索引擎提供三种最基本的方式:用户可以输入系统的功能名称(菜单名称)、业务系统中的基础档案名称或单据的编码、基础档案或单据的某个数据属性或属性的任意下一级属性。例如:
输入“商品”,确定后,打开商品新增界面;
输入“可口可乐”,确定后,打开可口可乐这种商品的编辑界面;
输入“可口可乐.供应商”,确定后,弹出提示:可口可乐.供应商是“XX公司”;
输入“可口可乐.供应商.地址”,确定后,弹出提示:可口可乐.供应商.地址是“XX地区XX街道XX号”。
其中数据属性的分隔符可以输入空格或者小数点符号。
二、实现原理:
1、元数据存储:在业务系统中,存在三张元数据表MenuIno、TableInfo、FieldInfo,分别存储业务系统中的菜单信息功能表、表信息数据表、字段信息数据属性表。MenuInfo菜单信息表需要记录菜单名称和相关界面的地址;TableInfo数据信息表需要记录表名称、基本数据条件、用于检索的名称字段名和编码字段名;FieldInfo数据属性表需要记录属性名称、和数据表的关联以及属性的引用关系。这里所描述的是元数据的最基本的一种存储方式,除此之外,还可以以其他方式来存储,只要能够保持数据的关联信息,就可以根据这个关联信息取得下一层的数据属性。
基本检索:当用户录入时,首先根据用户录入的字符,判断用户输入的字符是汉字还是数字和字母,如果是汉字优先检索名称,如果是字母和数字优先检索编码。在检索过程中,检索时,先和菜单名称匹配,再从各个数据表中依次查找相关记录,这里基于检索效率的考虑,需要为各个数据表建立一个索引,以便确定先检索那些常用的数据表。检索时,如果找到了10个匹配项,则自动返回,不再检索其他数据表,这是出于效率考虑,只需要10个检索结果,满足下拉提示中的一页即可。
3、高级检索:如果用户输入空格或者小数点分隔符,则根据当前检索信息匹配到的对象类型,继续检索其数据属性,把数据字段的标题列表返回给用户,用户选择一个属性时,从相应的数据表中检索到其属性值,如果属性是一个引用对象,则还可以将对象元数据信息一起返回,以便用户继续点击小数点分隔符进行下一层引用对象的检索。用户点击确定或者按下回车键的时候,把检索到的数据结果提示给用户。
4、重复处理:如果系统中某些对象的名称和编码重复,则在输入过程中由于有下拉列表的存在,相同名称或编码的不同对象会连同其对象类型显示在下拉列表中,这样,用户便可以明确地知道自己要检索的对象,从而进行进一步的选择和确认。
其具体的操作流程图见图2。如图2所示,用户输入(S202)之后,判断是否为分隔符(S204),如果判断结果为是,则进行到S206,检索数据属性,否则进行到S208,判断其是否为汉字。如果判断结果为是,则优先检索名称(S212),否则优先检索编码(S210)。在S206、S210和S212之后,都进行到S214,返回10行列表,在此本领域的技术人员应该了解,具体返回几行列表是根据客户的实际需要决定的,可以不仅仅是10行。然后进行到S216,用户进行选择和确定。在S218,判断用户的选择是否为数据属性,如果是,则进行到S220,弹出提示,显示数据结果,否则进行到步骤S222,打开相关界面。
三、具体实例描述
当用户输入文本“张三”时,检索引擎首先在功能表中检索有没有名称为张三的菜单,如果有这个菜单项则返回菜单的元数据信息。当用户回车确定后,打开指定菜单的页面地址。
如果检索的文本在功能表中没有检索到匹配的菜单,则会在数据信息表中找到所有的数据表,循环所有数据表来查找数据表中的数据,由于“张三”两个文字是汉字,所以先按照名称字段查找,再按照编码字段查找。在用户表中找到匹配的数据后,会把这条数据的信息返回。如果用户回车确认,则会打开用户“张三”的编辑页面。
如果用户继续输入“.”号,则由于前面的检索结果,检索引擎会知道当前输入的张三属于用户表。进而会继续从数据属性表中查找用户表的所有字段和字段标题以及引用和关联信息,则在输入下拉框中会返回所有用户的字段标题,用户选择部门,确认,则会以弹出框的形式弹出用户张三的部门名称。
如果用户继续输入“.”号,则检索引擎会从数据属性表中查找用户的部门字段和哪一张数据表关联,当检索到用户的部门属性和部门数据表关联后,会进而检索部门表下面的字段列表,则在输入下拉框中会显示出张三的部门的所有属性列表,如果用户选择部门的负责人,确定后,会以弹出框的形式弹出用户张三的部门的负责人姓名。
综上,本发明的检索方法是针对全文本检索引擎的不足而提出的全新概念,在用户实际应用过程中,对于特定对象的检索或者特定数据的检索是非常普遍的,全文本检索由于检索速度慢、结果不精确、以及在业务系统中建立全文本检索引擎的复杂性,决定了其应用范围是非常有限的,因此用户的使用频率非常低。
在绝大多数的条件下,用户对于他所要查找的数据,是能够明确知道其名称或者编码的,而且在绝大多数系统中,对象的名称或编码在全系统中是唯一的,重复现象并不多,因此,用户就可以很方便的在系统的主界面中快速录入该对象的名称和编码,回车后快速打开该对象的查看或编辑界面。而上述动作如果通过主菜单打开相应的对象查询界面,输入编码查询后再打开,则增加了四五步的操作。
在更多的时候,用户只想查看某一对象的某个特定的属性,比如客户张三的电话号码,在这类情况下,全对象检索引擎更能起到其便捷高效的使用效果,用户只需要在文本框中输入“张”,则下拉框中自动出现“张三”,选择张三后点击空格,则下拉框中自动出现“电话号码”,选择后确定,则张三的电话就会自动提示给用户。这显然比打开用户的编辑界面检索到张三的记录再查看电话号码要简洁和高效的多。
众所周知,BS系统中,界面效率是一个很大的瓶颈,通过全对象检索引擎可以大大方便用户的使用、减少操作时间和响应时间,是非常值得推广的技术。该引擎提供的元数据机制使全对象检索引擎不局限于固定的某个业务系统,任何管理软件只要建立了元数据表并对自己的业务数据表做一个全面描述就可以方便的启用全对象检索功能。而且,该引擎可以和语音输入系统有效的结合起来,当用户读出菜单名称时,可以打开相关界面,当用户通过语音读出“张三的电话号码”时,这些文本自动进入全对象检索框,检索到相关信息后,以语音的形式提示给用户。
根据本发明的检索方法解决了现有技术中的效率问题,为用户的检索提供了一种便捷有效的方式,在一个检索框中能够以对象名称、编码和属性列表的方式迅速检索到业务系统中的数据并定位到数据对应的编辑界面。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。