一种即席查询的方法、装置及服务器与流程

文档序号:15686589发布日期:2018-10-16 21:07阅读:264来源:国知局

本申请涉及计算机领域,尤其涉及一种即席查询的方法、装置及服务器。



背景技术:

企业中业务分析人员经常面对各种临时性的数据查询的需求,这些临时性的数据查询的需求特点是:已有的报表中无法满足该查询需求;需要的数据通常来自数据仓库中多张表;分析操作一般比较简单,例如过滤、汇总和排序等。基于这些查询需求,企业在建设数据仓库的时候,通常会提供两套即席查询工具,分别是语义建模工具和查询设计工具。语义建模工具供it人员使用,it人员将数据仓库中的物理表建模为逻辑模型,物理表是一系列二维数组的集合,用于代表数据仓库中存储的数据对象。逻辑模型映射到一个或多个物理表,并指定了逻辑模型中的列映射到物理表中列的方式。查询设计工具供业务用户使用,业务用户通过该工具从众多的逻辑模型中挑选一到多个,然后挑选逻辑模型中特定字段来构造查询。一个简单的查询设计工具提供如下功能:逻辑模型查询、逻辑模型关联设置及输出列设置。自助查询的结果为二维数组的结构,有多个输出列,输出列设置提供从逻辑模型中挑选特定字段映射为查询结果列的功能。为满足业务用户灵活的自助查询的需求,it人员通常会批量开发非常多的逻辑模型,业务用户很难通过一个个浏览的方式获取逻辑模型。

为了方便业务用户获取逻辑模型,一种现有的即席查询的方法为:一、it人员利用语义建模工具将数据仓库中的物理表建模为逻辑模型的时候,保存逻辑模型和逻辑模型字段的信息,并且为“逻辑模型”表和“逻辑模型字段”表分别建立独立的索引;二、基于以上索引,查询设计工具接收业务用户输入的检索词;三、根据检索词构造检索的结构化查询语言(structuredquerylanguage,sql)语句;四、获取返回的符合检索词的逻辑模型名或逻辑模型字段名,以列表方式展示给业务用户;五、业务用户拖动搜索到的逻辑模型到设计区域,将该逻辑模型中的某个逻辑字段设置为查询结果的输出列。

但是,现有的即席查询方法的查询结果是将所有匹配检索词的逻辑字段和逻辑模型显示出来,需要业务用户一一识别显示的字段或者逻辑模型,从而选择适合的逻辑模型,在显示的字段或者逻辑模型较多时,业务用户进行识别和选择的工作量和耗时较大,影响了即席查询的效率。



技术实现要素:

本申请提供了一种即席查询的方法、装置及服务器,增加了逻辑模型索引文档,对查询到的逻辑模型索引文档集合中每一个逻辑模型索引文档进行打分,使得业务用户看到的逻辑模型查询结果是具有分数值的至少一个逻辑模型索引文档,从而方便业务用户的逻辑模型识别和选择,提高了即席查询的效率。

本申请第一方面提供一种即席查询的方法,包括:

获取业务用户输入的检索词;

根据所述检索词查询索引库,确定逻辑模型索引文档集合,所述逻辑模型索引文档集合包括至少一个逻辑模型索引文档,所述索引库包括所述至少一个逻辑模型索引文档的文档标识、文档字段的分词结构信息及评分权重信息,所述分词结构信息包括对应文档字段的字段数据的分词结构,所述评分权重信息包括对应文档字段的评分权重值,所述逻辑模型索引文档中至少一个文档字段的分词结构信息中包含所述检索词,一个逻辑模型索引文档对应一个逻辑模型的索引信息;

根据逻辑模型索引文档打分公式及所述评分权重信息,对所述逻辑模型索引文档集合中每一个逻辑模型索引文档进行打分,得到逻辑模型查询结果。

在业务用户使用即席查询系统进行即席查询之前,技术人员已经在系统中建立好索引库,索引库中包括至少一个逻辑模型索引文档的文档标识、每个逻辑模型索引文档的文档字段的分词结构信息及评分权重信息,分词结构信息包括对应文档字段的字段数据的分词结构,评分权重信息包括对应文档字段的评分权重值,并且逻辑模型索引文档对应一个逻辑模型的索引信息。当业务用户在用户界面(ui,userinterface)输入检索词后,获取业务用户输入的检索词,根据检索词查询索引库,如果检索词出现在某个逻辑模型索引文档的一个或多个文档字段的分词结构信息中,就表明该逻辑模型索引文档是符合查询要求的,遍历索引库中所有的逻辑模型索引文档,确定出包括至少一个符合本次查询要求的逻辑模型索引文档的逻辑模型索引文档集合,预先设置好了逻辑模型索引文档打分公式,根据逻辑模型索引文档打分公式和评分权重信息可以实现逻辑模型索引文档集合中每一个逻辑模型索引文档的打分,对查询到的逻辑模型索引文档集合中每一个逻辑模型索引文档进行打分后,得到的逻辑模型查询结果是具有分数值的逻辑模型索引文档,使得逻辑模型索引文档存在多个时,业务用户可以直观的看到每个逻辑模型索引文档及其分数值,由于一个逻辑模型索引文档对应一个逻辑模型的索引信息,那么业务用户根据逻辑模型查询结果中的逻辑模型索引文档的分数值可以快速选择出需求的逻辑模型,与现有技术相比,业务用户可以按照逻辑模型查询结果快速的选择逻辑模型,减少了业务用户识别和选择逻辑模型的工作量和耗时,提高了即席查询的效率。

结合本申请第一方面,本申请第一方面第一实施方式中,所述获取业务用户输入的检索词之前,还包括:

创建索引文档,设置所述索引文档的文档标识及文档字段的配置信息,所述索引文档包括逻辑模型索引文档和关联关系索引文档,所述逻辑模型索引文档对应一个逻辑模型的索引信息,所述关联关系索引文档对应一个逻辑模型关联关系的索引信息,所述配置信息包括数据来源信息、分词处理信息及评分权重信息,所述数据来源信息对应逻辑模型的逻辑模型信息和逻辑模型字段信息,或所述数据来源信息对应逻辑模型关联关系的关联关系数据,所述评分权重信息表示对应文档字段的评分权重值;

根据所述数据来源信息从逻辑模型存储库中获取所述索引文档中文档字段的字段数据;

根据所述分词处理信息判断是否对所述字段数据进行文本分词处理;

若是,则对所述字段数据进行文本分词处理,得到分词结构信息,将所述分词结构信息与所述文档标识键值对存储至索引库中;

若否,则将所述字段数据存储至索引库中。

在获取业务用户输入的检索词进行即席查询之前,需要在索引库中先创建索引文档,设置索引文档的文档标识及文档字段的配置信息,索引文档包括逻辑模型索引文档和关联关系索引文档,逻辑模型索引文档对应一个逻辑模型的索引信息,关联关系索引文档对应一个逻辑模型关联关系的索引信息,文档字段的配置信息包括数据来源信息、分词处理信息及评分权重信息,数据来源信息对应逻辑模型的逻辑模型信息和逻辑模型字段信息,或者数据来源信息对应逻辑模型关联关系的关联关系数据,评分权重信息表示对应文档字段的评分权重值,评分权重值的具体数值是按照文档字段的重要程度所预先设置的,如果索引文档的文档字段的数据来源信息对应的是逻辑模型的逻辑模型信息和逻辑模型字段信息,则索引文档为逻辑模型索引文档;如果索引文档的文档字段的数据来源信息对应的是逻辑模型关联关系的关联关系数据,则索引文档为关联关系索引文档。而逻辑模型的逻辑模型信息和逻辑模型字段信息以及逻辑模型关联关系的关联关系数据是存储在逻辑模型存储库中的,那么根据数据来源信息可以从逻辑模型存储库中获取索引文档中文档字段的字段数据,再根据文档字段的分词处理信息判断是否对字段数据进行文本分词处理,如果是,则使用分词器对字段数据进行文本分词处理,得到分词结构信息,并将分词结构信息与文档标识构造为键值对,以键值对存储的方式将分词结构信息与文档标识保存到索引库中;如果不需要对字段数据进行分词处理,则将字段数据存储至索引库中。一般来说“文档标识”及“使用次数”等文档字段的字段数据不需要进行分词处理,因为字段数据是编号或者数值,不存在分词的意义。使得业务用户选择了逻辑模型索引文档后,能够根据逻辑模型索引文档索引得到对应的逻辑模型,选择了关联关系索引文档后,能够根据关联关系索引文档索引得到对应的逻辑模型关联关系。

结合本申请第一方面第一实施方式,本申请第一方面第二实施方式中,所述根据所述检索词查询索引库,确定逻辑模型索引文档集合,包括:

对所述检索词进行分词处理,得到关键词;

根据预置查询语句规则和所述关键词生成逻辑模型查询语句,所述逻辑模型查询语句包括预置模型索引查询字段,所述逻辑模型查询语句用于查询逻辑模型索引文档,所述预置模型索引查询字段为所述逻辑模型索引文档的文档字段;

根据所述逻辑模型查询语句查询索引库,确定逻辑模型索引文档集合,所述逻辑模型索引文档集合包括至少一个逻辑模型索引文档。

在获取到业务用户输入的检索词之后,考虑到业务用户输入的检索词可能为口语化或不规范的词,如此的话,按照此检索词来查询索引库,是无法查询到逻辑模型索引文档的,因为逻辑模型索引文档的部分文档字段的分词结构信息都是分词器按照分词要求对字段数据进行分词处理的,所以获取到检索词之后,需要通过分词器对检索词进行分词处理,分词处理得到的关键词可能为一个或者多个,再根据预置查询语句规则和关键词生成逻辑模型查询语句,预置查询语句规则是一套预设的查询语句生成规则,生成逻辑模型查询语句时,预置了需要查询的模型索引查询字段,预置模型索引查询字段为逻辑模型索引文档的文档字段,这样就能实现根据逻辑模型查询语句查询索引库,从而确定符合逻辑模型查询语句的逻辑模型索引文档时,对查询的范围进行限定,而不是对每个逻辑模型索引文档的所有文档字段都进行遍历查询,可以进一步节省查询时间,并且通过预置查询语句规则和关键词生成逻辑模型查询语句,从而查询索引库确定包括至少一个逻辑模型索引文档的逻辑模型索引文档集合,使得查询服务可以自动完成。

结合本申请第一方面第二实施方式,本申请第一方面第三实施方式中,当所述关键词的数量大于一个且多个关键词之间为和的关系时,所述方法还包括:

根据预置查询语句规则和所述关键词生成关联关系查询语句,所述关联关系查询语句包括预置关联关系索引查询字段,所述关联关系查询语句用于查询关联关系索引文档,所述预置关联关系索引查询字段对应所述关联关系索引文档的源模型字段和目标模型字段;

根据所述关联关系查询语句查询索引库,确定关联关系索引文档集合,所述关联关系索引文档集合包括至少一个关联关系索引文档;

根据关联关系索引文档打分公式及所述评分权重信息,对所述关联关系索引文档集合中每一个关联关系索引文档进行打分,得到关联关系查询结果。

由于在对检索词进行分词时,关键词可能是一个,也可能是多个,而关键词为多个时,关键词之间的关系可以为或,也可以为和。多个关键词之间的关系为或时,查询得到的多个逻辑模型索引文档之间不存在关联关系;多个关键词之间的关系为和时,查询得到至少一个逻辑模型索引文档,而且多个逻辑模型索引文档之间可能存在关联关系索引文档对应的逻辑模型关联关系,因此,还需要查询索引库中的关联关系索引文档。因此,当关键词的数量大于一个且多个关键词之间为和的关系时,根据预置查询语句规则和关键词生成关联关系查询语句,关联关系查询语句包括预置关联关系索引查询字段,预置关联关系索引查询字段对应每一个关联关系索引文档的源模型字段和目标模型字段,再根据关联关系查询语句查询索引库,确定的关联关系索引文档集合中包括符合查询要求的至少一个关联关系索引文档,根据关联关系索引文档打分公式及评分权重信息,对关联关系索引文档集合中每一个关联关系索引文档进行打分,得到关联关系查询结果,由于一个关联关系索引文档对应一个逻辑模型关联关系的索引信息,那么业务用户通过关联关系查询结果中的关联关系索引文档集合及其分数值,可以选择出关联关系索引文档,由关联关系索引文档索引得到对应的逻辑模型关联关系,在现有技术中,当业务用户的查询结果输出列中的逻辑字段来自多个不同的逻辑模型的时候,业务用户手动建立多个不同的逻辑模型之中两两逻辑模型之间的关联关系,从而将多个逻辑模型对应的物理表组合起来,因此,本方案无须业务用户手动设置逻辑模型关联关系,从而进一步的提高了即席查询的效率。

结合本申请第一方面第三实施方式,本申请第一方面第四实施方式中,所述根据所述逻辑模型查询语句查询索引库,确定逻辑模型索引文档集合,包括:

根据所述逻辑模型查询语句中的预置模型索引查询字段,从索引库的所有逻辑模型索引文档中获取对应所述预置模型索引查询字段的文档字段的分词结构信息;

根据所述分词结构信息判断对应的文档字段是否包含所述关键词;

若包含,则根据所述分词结构信息确定对应键值对的至少一个文档标识,根据所述至少一个文档标识确定对应的至少一个逻辑模型索引文档,根据所述至少一个逻辑模型索引文档得到逻辑模型索引文档集合;

若不包含,则判断所述所有逻辑模型索引文档中对应所述预置模型索引查询字段的其他文档字段的分词结构信息是否包含所述关键词。

在生成逻辑模型查询语句后,根据逻辑模型查询语句中的预置模型索引查询字段,预置模型索引查询字段即每个逻辑模型索引文档中的特定的文档字段,从索引库的所有逻辑模型索引文档中获取对应预置模型索引查询字段的文档字段的分词结构信息,由于分词结构信息是一个文档字段的字段数据的分词结构或者就是字段数据,那么分词结构信息中是否包含关键词是可以查询到的,从而根据分词结构信息可以判断对应的文档字段是否包含关键词,而由于分词结构信息与文档标识是键值对存储在索引库中的,如果包含,则根据分词结构信息确定对应键值对的至少一个文档标识,根据至少一个文档标识确定对应的至少一个逻辑模型索引文档,将这些逻辑模型索引文档作为一个逻辑模型索引文档集合;如果不包含,则判断所有逻辑模型索引文档中对应预置模型索引查询字段的其他文档字段的分词结构信息是否包含关键词,从而实现了遍历查询索引库中所有逻辑模型索引文档。

结合本申请第一方面第四实施方式,本申请第一方面第五实施方式中,所述根据所述逻辑模型索引文档的打分公式及所述评分权重信息,对所述逻辑模型索引文档集合中每一个逻辑模型索引文档进行打分,得到逻辑模型查询结果,包括:

获取所述逻辑模型索引文档集合中每一个逻辑模型索引文档的所述预置模型索引查询字段对应的文档字段中所述关键词的出现次数;

根据所述评分权重信息确定所述逻辑模型索引文档集合中每一个逻辑模型索引文档的每个文档字段的评分权重值;

将所述出现次数和所述评分权重值代入逻辑模型索引文档打分公式

其中,d表示逻辑模型索引文档,f表示所述逻辑模型索引文档d的文档字段,t表示关键词,tf(tinf)=sqrt(frequency)表示关键词t在文档字段f中的出现次数frequency的平方根,weight(f)表示所述文档字段f的评分权重值,weight(f)*tf(tinf)表示所述关键词t的tf值与所述文档字段f的评分权重值的乘积,σfindweight(f)*tf(tinf)表示所述关键词在所述逻辑模型索引文档d中的总值,x表示所述逻辑模型索引文档d的使用次数字段,v(x)表示所述逻辑模型索引文档d的使用次数的数字值,score(tind)表示所述逻辑模型索引文档d的分数值;

得到所述逻辑模型索引文档集合中每一个逻辑模型索引文档的分数值,将所述逻辑模型索引文档集合及所述分数值作为逻辑模型查询结果。

基于第一方面第四实施方式中查询得到逻辑模型索引文档集合,获取该逻辑模型索引文档集合中每一个逻辑模型索引文档的预置模型索引查询字段对应的文档字段中关键词的出现次数,由于评分权重信息是预先配置好逻辑模型索引文档中每一个文档字段的评分权重值,那么根据评分权重信息确定每个逻辑模型索引文档的每个文档字段的评分权重值,从而可以得到每一个预置模型索引查询字段对应的文档字段中出现关键词的文档字段的评分权重值。

预设的逻辑模型索引文档打分公式为

以上打分公式中,d表示逻辑模型索引文档,f表示逻辑模型索引文档d的文档字段,t表示关键词,tf(tinf)=sqrt(frequency)表示关键词t在文档字段f中的出现次数frequency的平方根,weight(f)表示文档字段f的评分权重值,weight(f)*tf(tinf)表示关键词t的tf值与文档字段f的评分权重值的乘积,σfindweight(f)*tf(tinf)表示关键词在逻辑模型索引文档d中的总值,x表示逻辑模型索引文档d的预置文档字段,v(x)表示逻辑模型索引文档d中的文档字段“使用次数”,“使用次数”的数据来源信息是从逻辑模型信息的“使用次数”字段得到的,表示的是该逻辑模型索引文档d对应的逻辑模型的使用频率,score(tind)表示逻辑模型索引文档d的分数值,在已知出现次数frequency、v(x)和weight(f)的值的情况下,得到每一个逻辑模型索引文档的分数值,从而实现逻辑模型索引文档集合中每一个逻辑模型索引文档的具体的打分过程,从而使得逻辑模型查询结果中包含每个逻辑模型索引文档及其分数值,方便业务用户根据逻辑模型索引文档的分数值可以知道最匹配本次查询的逻辑模型,由于还综合了逻辑模型的使用频率,那么业务用户根据查询结果得到的逻辑模型将更加精确。

结合本申请第一方面第三实施方式,本申请第一方面第六实施方式中,所述根据所述关联关系查询语句查询索引库,确定关联关系索引文档集合,包括:

根据所述关联关系查询语句中的预置关联关系索引查询字段,从索引库的所有关联关系索引文档中获取对应所述预置关联关系索引查询字段的文档字段的分词结构信息;

判断所述分词结构信息中是否包含所述关键词;

若包含,则根据所述分词结构信息确定对应键值对的至少一个文档标识,根据所述至少一个文档标识确定对应的至少一个关联关系索引文档,根据所述至少一个关联关系索引文档得到关联关系索引文档集合;

若不包含,则判断所述所有关联关系索引文档中对应所述预置关联关系索引查询字段的其他文档字段的分词结构信息是否包含所述关键词。

在生成关联关系查询语句后,根据关联关系查询语句中的预置关联关系索引查询字段,预置关联关系索引查询字段即每个关联关系索引文档中的源逻辑字段和目标逻辑字段,从索引库的所有关联关系索引文档中获取对应预置关联关系索引查询字段的文档字段的分词结构信息,即源逻辑字段和目标逻辑字段的分词结构信息,从而判断分词结构信息中是否包含关键词,而由于分词结构信息与文档标识是键值对存储在索引库中的,如果包含,则根据分词结构信息确定对应键值对的至少一个文档标识,根据至少一个文档标识确定对应的至少一个关联关系索引文档,将这些关联关系索引文档作为一个关联关系索引文档集合;如果不包含,则判断所有关联关系索引文档中对应预置关联关系索引查询字段的其他文档字段的分词结构信息是否包含关键词,从而实现了遍历查询索引库中所有关联关系索引文档。

结合本申请第一方面第六实施方式,本申请第一方面第七实施方式中,所述根据关联关系索引文档打分公式及所述评分权重信息,对所述关联关系索引文档集合中每一个关联关系索引文档进行打分,得到关联关系查询结果,包括:

分别获取所述关联关系索引文档集合中每一个关联关系索引文档的所述预置关联关系索引查询字段对应的源模型字段和目标模型字段中所述关键词的出现次数;

根据所述评分权重信息确定所述源模型字段和所述目标模型字段的评分权重值;

将所述源模型字段中所述关键词的出现次数、所述目标模型字段中所述关键词的出现次数、所述源模型字段的评分权重值和所述目标模型字段的评分权重值代入关联关系索引文档打分公式score(tind)=weight(y1)*tf(tiny1)+weight(y2)*tf(tiny2)进行计算,其中,y1表示源模型字段,y2表示目标模型字段,weight(y1)表示所述源模型字段y1的评分权重值,weight(y2)表示所述目标模型字段y2的评分权重值,tf(tiny1)=sqrt(frequency1)表示关键词t在源模型字段y1中的出现次数frequency1的平方根,tf(tiny2)=sqrt(frequency2)表示关键词t在源模型字段y2中的出现次数frequency2的平方根,score(tind)表示所述关联关系索引文档d的分数值;

得到所述关联关系索引文档集合中每一个关联关系索引文档的分数值,将所述关联关系索引文档集合及所述分数值作为关联关系查询结果。

基于第一方面第六实施方式中查询得到关联关系索引文档,预置关联关系索引查询字段对应的是关联关系索引文档集合中每一个关联关系索引文档中的源模型字段和目标模型字段,因此,获取每一个关联关系索引文档的源模型字段和目标模型字段中关键词的出现次数,根据评分权重信息确定源模型字段和目标模型字段的评分权重值,将源模型字段中关键词的出现次数、目标模型字段中关键词的出现次数、源模型字段的评分权重值和目标模型字段的评分权重值代入关联关系索引文档的打分公式score(tind)=weight(y1)*tf(tiny1)+weight(y2)*tf(tiny2)进行计算,其中,y1表示源模型字段,y2表示目标模型字段,weight(y1)表示源模型字段y1的评分权重值,weight(y2)表示目标模型字段y2的评分权重值,tf(tiny1)=sqrt(frequency1)表示关键词t在源模型字段y1中的出现次数frequency1的平方根,tf(tiny2)=sqrt(frequency2)表示关键词t在源模型字段y2中的出现次数frequency2的平方根,score(tind)表示关联关系索引文档d的分数值,已知weight(y1)、weight(y2)、frequency1和frequency2的情况下,得到该关联关系索引文档的分数值,实现了关联关系索引文档集合中每一个关联关系索引文档的具体的打分过程,从而使得查询结果中包含每个关联关系索引文档及分数值,方便业务用户根据关联关系索引文档的分数值可以知道最匹配本次查询的逻辑模型关联关系。

结合本申请第一方面第一实施方式、第一方面第二实施方式、第一方面第三实施方式、第一方面第四实施方式、第一方面第五实施方式、第一方面第六实施方式及第一方面第七实施方式,本申请第一方面第八实施方式中,所述创建索引文档,设置所述索引文档的文档标识及文档字段的配置信息之前,还包括:

获取数据仓库中的物理表;

根据所述物理表创建逻辑模型,并将所述逻辑模型保存至逻辑模型存储库中,所述逻辑模型包括逻辑模型信息和逻辑模型字段信息,所述逻辑模型信息的字段包括逻辑模型标识、物理表名、逻辑模型名、业务描述、使用次数、模型更新时间及数据更新时间,所述逻辑模型字段信息的字段包括物理字段名、逻辑字段名及业务描述;

通过频繁集挖掘方式获取逻辑模型关联关系的关联关系数据,并将所述关联关系数据保存至逻辑模型存储库中,所述关联关系数据包括关联关系hash值、源逻辑模型标识、目标逻辑模型标识及关联路径信息。

在创建索引文档之前,需要将数据仓库中的物理表建模为逻辑模型,将逻辑模型保存至逻辑模型存储库中,物理表是一系列二维数组的集合,用于代表数据仓库中存储的数据对象,逻辑模型包括逻辑模型信息和逻辑模型字段信息,逻辑模型信息的字段包括逻辑模型标识、物理表名、逻辑模型名、业务描述、使用次数、模型更新时间及数据更新时间,逻辑模型字段信息的字段包括物理字段名、逻辑字段名及业务描述,逻辑模型存储库中的存储介质一般选择关系型数据库,逻辑模型信息和逻辑模型字段信息一般采用二维表的方式;收集统计业务用户设置的历史逻辑模型关联关系或者技术人员预先设置的逻辑模型关联关系,通过频繁集挖掘方式获取逻辑模型关联关系的关联关系数据,并将关联关系数据保存至逻辑模型存储库中,关联关系数据包括关联关系hash值、源逻辑模型标识、目标逻辑模型标识及关联路径信息。在逻辑模型信息的字段中增加了使用次数、模型更新时间及数据更新时间这三个字段,可以记录逻辑模型的使用频率和更新状况,使得业务用户查询到的逻辑模型更精确,而逻辑模型关联关系的关联关系数据可以有效的避免业务用户重复设置以前设置过的逻辑模型关联关系。

本申请第二方面提供一种即席查询的装置,包括:

获取模块,用于获取业务用户输入的检索词;

查询模块,用于根据所述检索词查询索引库,确定逻辑模型索引文档集合,所述逻辑模型索引文档集合包括至少一个逻辑模型索引文档,所述索引库包括所述至少一个逻辑模型索引文档的文档标识、文档字段的分词结构信息及评分权重信息,所述分词结构信息对应所述文档字段的字段数据的分词结构,所述评分权重信息对应所述文档字段的评分权重值,所述逻辑模型索引文档中至少一个文档字段的分词结构信息中包含所述检索词,一个逻辑模型索引文档对应一个逻辑模型的索引信息;

打分模块,用于根据逻辑模型索引文档打分公式及所述评分权重信息,对所述逻辑模型索引文档集合中每一个逻辑模型索引文档进行打分,得到逻辑模型查询结果。

在业务用户使用即席查询系统进行即席查询之前,技术人员已经在系统中建立好索引库,索引库中包括至少一个逻辑模型索引文档的文档标识、每个逻辑模型索引文档的文档字段的分词结构信息及评分权重信息,分词结构信息包括对应文档字段的字段数据的分词结构,评分权重信息包括对应文档字段的评分权重值,并且逻辑模型索引文档对应一个逻辑模型的索引信息。当业务用户在ui输入检索词后,获取模块获取业务用户输入的检索词,查询模块根据检索词查询索引库,如果检索词出现在某个逻辑模型索引文档的一个或多个文档字段的分词结构信息中,就表明该逻辑模型索引文档是符合查询要求的,遍历索引库中所有的逻辑模型索引文档,确定出包括至少一个符合本次查询要求的逻辑模型索引文档的逻辑模型索引文档集合,预先设置好了逻辑模型索引文档打分公式,打分模块根据逻辑模型索引文档打分公式和评分权重信息可以实现逻辑模型索引文档集合中每一个逻辑模型索引文档的打分,对查询到的逻辑模型索引文档集合中每一个逻辑模型索引文档进行打分后,得到的查询结果是具有分数值的逻辑模型索引文档,使得逻辑模型索引文档存在多个时,业务用户可以直观的看到查询结果中每个逻辑模型索引文档及其分数值,由于一个逻辑模型索引文档对应一个逻辑模型的索引信息,那么业务用户根据逻辑模型查询结果中的逻辑模型索引文档的分数值可以快速选择出需求的逻辑模型,与现有技术相比,业务用户可以按照逻辑模型查询结果快速的选择逻辑模型,减少了业务用户识别和选择逻辑模型的工作量和耗时,提高了即席查询的效率。

结合本申请第二方面,本申请第二方面第一实施方式中,所述装置还包括:

索引创建模块,用于创建索引文档,设置所述索引文档的文档标识及文档字段的配置信息,所述索引文档包括逻辑模型索引文档和关联关系索引文档,所述逻辑模型索引文档对应一个逻辑模型的索引信息,所述关联关系索引文档对应一个逻辑模型关联关系的索引信息,所述配置信息包括数据来源信息、分词处理信息及评分权重信息,所述数据来源信息对应逻辑模型的逻辑模型信息和逻辑模型字段信息,或所述数据来源信息对应逻辑模型关联关系的关联关系数据,所述评分权重信息表示对应文档字段的评分权重值;

所述索引创建模块,还用于根据所述数据来源信息从逻辑模型存储库中获取所述索引文档中文档字段的字段数据;

所述索引创建模块,还用于根据所述分词处理信息判断是否对所述字段数据进行文本分词处理;

所述索引创建模块,还用于当判断需要对所述字段数据进行文本分词处理时,对所述字段数据进行文本分词处理,得到分词结构信息,将所述分词结构信息与所述文档标识键值对存储至索引库中;

所述索引创建模块,还用于当判断不需要对所述字段数据进行文本分词处理时,将所述字段数据存储至索引库中。

在获取业务用户输入的检索词进行即席查询之前,需要索引创建模块在索引库中先创建索引文档,设置索引文档的文档标识及文档字段的配置信息,索引文档包括逻辑模型索引文档和关联关系索引文档,逻辑模型索引文档对应一个逻辑模型的索引信息,关联关系索引文档对应一个逻辑模型关联关系的索引信息,文档字段的配置信息包括数据来源信息、分词处理信息及评分权重信息,数据来源信息对应逻辑模型的逻辑模型信息和逻辑模型字段信息,或者数据来源信息对应逻辑模型关联关系的关联关系数据,评分权重信息表示对应文档字段的评分权重值,评分权重值的具体数值是按照文档字段的重要程度所预先设置的,如果索引文档的文档字段的数据来源信息对应的是逻辑模型的逻辑模型信息和逻辑模型字段信息,则索引文档为逻辑模型索引文档;如果索引文档的文档字段的数据来源信息对应的是逻辑模型关联关系的关联关系数据,则索引文档为关联关系索引文档。而逻辑模型的逻辑模型信息和逻辑模型字段信息以及逻辑模型关联关系的关联关系数据是存储在逻辑模型存储库中的,那么索引创建模块根据数据来源信息可以从逻辑模型存储库中获取索引文档中文档字段的字段数据,再根据文档字段的分词处理信息判断是否对字段数据进行文本分词处理,如果是,则索引创建模块使用分词器对字段数据进行文本分词处理,得到分词结构信息,并将分词结构信息与文档标识构造为键值对,以键值对存储的方式将分词结构信息与文档标识保存到索引库中;如果不需要对字段数据进行分词处理,则索引创建模块将字段数据直接存储至索引库中。一般来说“文档标识”及“使用次数”等文档字段的字段数据不需要进行分词处理,因为字段数据是编号或者数值,不存在分词的意义。使得业务用户选择了逻辑模型索引文档后,能够根据逻辑模型索引文档索引得到对应的逻辑模型,选择了关联关系索引文档后,能够根据关联关系索引文档索引得到对应的逻辑模型关联关系。

结合本申请第二方面第一实施方式,本申请第二方面第二实施方式中,所述查询模块包括:

分词单元,用于对所述检索词进行分词处理,得到关键词;

查询语句单元,用于根据预置查询语句规则和所述关键词生成逻辑模型查询语句,所述逻辑模型查询语句包括预置模型索引查询字段,所述逻辑模型查询语句用于查询逻辑模型索引文档,所述预置模型索引查询字段为所述逻辑模型索引文档的文档字段;

查询单元,用于根据所述逻辑模型查询语句查询索引库,确定逻辑模型索引文档集合,所述逻辑模型索引文档集合包括至少一个逻辑模型索引文档。

在获取到业务用户输入的检索词之后,考虑到业务用户输入的检索词可能为口语化或不规范的词,如此的话,按照此检索词来查询索引库,是无法查询到逻辑模型索引文档的,因为逻辑模型索引文档的部分文档字段的分词结构信息都是分词器按照分词要求对字段数据进行分词处理的,所以获取到检索词之后,分词单元通过分词器对检索词进行分词处理,分词处理得到的关键词可能为一个或者多个,查询语句单元再根据预置查询语句规则和关键词生成逻辑模型查询语句,预置查询语句规则是一套预设的查询语句生成规则,查询语句单元生成逻辑模型查询语句时,预置了需要查询的模型索引查询字段,预置模型索引查询字段为逻辑模型索引文档的文档字段,这样就能实现根据逻辑模型查询语句查询索引库,从而查询单元确定符合逻辑模型查询语句的逻辑模型索引文档时,对查询的范围进行限定,而不是对每个逻辑模型索引文档的所有文档字段都进行遍历查询,可以进一步节省查询时间,并且通过预置查询语句规则和关键词生成逻辑模型查询语句,从而查询索引库确定包括至少一个逻辑模型索引文档的逻辑模型索引文档集合,使得查询服务可以自动完成。

结合本申请第二方面第二实施方式,本申请第二方面第三实施方式中,当所述关键词的数量大于一个且多个关键词之间为和的关系时,

所述查询语句单元,还用于根据预置查询语句规则和所述关键词生成关联关系查询语句,所述关联关系查询语句包括预置关联关系索引查询字段,所述关联关系查询语句用于查询关联关系索引文档,所述预置关联关系索引查询字段对应所述关联关系索引文档的源模型字段和目标模型字段;

所述查询单元,还用于根据所述关联关系查询语句查询索引库,确定关联关系索引文档集合,所述关联关系索引文档集合包括至少一个关联关系索引文档;

所述打分模块,还用于根据关联关系索引文档打分公式及所述评分权重信息,对所述关联关系索引文档集合中每一个关联关系索引文档进行打分,得到关联关系查询结果。

由于在对检索词进行分词时,关键词可能是一个,也可能是多个,而关键词为多个时,关键词之间的关系可以为或,也可以为和。多个关键词之间的关系为或时,查询得到的多个逻辑模型索引文档之间不存在关联关系;多个关键词之间的关系为和时,查询得到至少一个逻辑模型索引文档,而且多个逻辑模型索引文档之间可能存在关联关系索引文档对应的逻辑模型关联关系,因此,还需要查询索引库中的关联关系索引文档。因此,当关键词的数量大于一个且多个关键词之间为和的关系时,查询语句单元根据预置查询语句规则和关键词生成关联关系查询语句,关联关系查询语句包括预置关联关系索引查询字段,预置关联关系索引查询字段对应每一个关联关系索引文档的源模型字段和目标模型字段,查询单元再根据关联关系查询语句查询索引库,确定的关联关系索引文档集合中包括符合查询要求的至少一个关联关系索引文档,打分模块根据关联关系索引文档打分公式及评分权重信息,对关联关系索引文档集合中每一个关联关系索引文档进行打分,得到关联关系查询结果,由于一个关联关系索引文档对应一个逻辑模型关联关系的索引信息,那么业务用户通过关联关系查询结果中的关联关系索引文档集合及其分数值,可以选择出关联关系索引文档,由关联关系索引文档索引得到对应的逻辑模型关联关系,在现有技术中,当业务用户的查询结果输出列中的逻辑字段来自多个不同的逻辑模型的时候,业务用户手动建立多个不同的逻辑模型之中两两逻辑模型之间的关联关系,从而将多个逻辑模型对应的物理表组合起来,因此,本方案无须业务用户手动设置逻辑模型关联关系,从而进一步的提高了即席查询的效率。

结合本申请第二方面第三实施方式,本申请第二方面第四实施方式中,

所述查询单元,还用于根据所述逻辑模型查询语句中的预置模型索引查询字段,从索引库的所有逻辑模型索引文档中获取对应所述预置模型索引查询字段的文档字段的分词结构信息;

所述查询单元,还用于根据所述分词结构信息判断对应的文档字段是否包含所述关键词;

所述查询单元,还用于当所述分词结构信息对应的文档字段包含所述关键词时,根据所述分词结构信息确定对应键值对的至少一个文档标识,根据所述至少一个文档标识确定对应的至少一个逻辑模型索引文档,根据所述至少一个逻辑模型索引文档得到逻辑模型索引文档集合;

所述查询单元,还用于当所述分词结构信息对应的文档字段不包含所述关键词时,判断所述所有逻辑模型索引文档中对应所述预置模型索引查询字段的其他文档字段的分词结构信息是否包含所述关键词。

查询语句单元在生成逻辑模型查询语句后,查询单元根据逻辑模型查询语句中的预置模型索引查询字段,预置模型索引查询字段即每个逻辑模型索引文档中的特定的文档字段,查询单元从索引库的所有逻辑模型索引文档中获取对应预置模型索引查询字段的文档字段的分词结构信息,由于分词结构信息是一个文档字段的字段数据的分词结构或者就是字段数据,那么分词结构信息中是否包含关键词是可以查询到的,从而根据分词结构信息可以判断对应的文档字段是否包含关键词,而由于分词结构信息与文档标识是键值对存储在索引库中的,如果包含,则查询单元根据分词结构信息确定对应键值对的至少一个文档标识,根据至少一个文档标识确定对应的至少一个逻辑模型索引文档,将这些逻辑模型索引文档作为一个逻辑模型索引文档集合;如果不包含,则查询单元判断所有逻辑模型索引文档中对应预置查询字段的其他文档字段的分词结构信息是否包含关键词,从而实现了遍历查询索引库中所有逻辑模型索引文档。

结合本申请第二方面第四实施方式,本申请第二方面第五实施方式中,

所述打分模块,还用于获取所述逻辑模型索引文档集合中每一个逻辑模型索引文档的所述预置模型索引查询字段对应的文档字段中所述关键词的出现次数;

所述打分模块,还用于根据所述评分权重信息确定所述逻辑模型索引文档集合中每一个逻辑模型索引文档的每个文档字段的评分权重值;

所述打分模块,还用于将所述出现次数和所述评分权重值代入逻辑模型索引文档打分公式

其中,d表示逻辑模型索引文档,f表示所述逻辑模型索引文档d的文档字段,t表示关键词,tf(tinf)=sqrt(frequency)表示关键词t在文档字段f中的出现次数frequency的平方根,weight(f)表示所述文档字段f的评分权重值,weight(f)*tf(tinf)表示所述关键词t的tf值与所述文档字段f的评分权重值的乘积,σfindweight(f)*tf(tinf)表示所述关键词在所述逻辑模型索引文档d中的总值,x表示所述逻辑模型索引文档d的使用次数字段,v(x)表示所述逻辑模型索引文档d的使用次数的数字值,score(tind)表示所述逻辑模型索引文档d的分数值;

所述打分模块,还用于得到所述逻辑模型索引文档集合中每一个逻辑模型索引文档的分数值,将所述逻辑模型索引文档集合及所述分数值作为逻辑模型查询结果。

基于第二方面第四实施方式中查询单元得到的逻辑模型索引文档集合,打分模块获取该逻辑模型索引文档集合中每一个逻辑模型索引文档的预置模型索引查询字段对应的文档字段中关键词的出现次数,由于评分权重信息是预先配置好逻辑模型索引文档中每一个文档字段的评分权重值,那么根据评分权重信息确定每个逻辑模型索引文档的每个文档字段的评分权重值,从而可以得到每一个预置模型索引查询字段对应的文档字段中出现关键词的文档字段的评分权重值。

预设的逻辑模型索引文档打分公式为

以上打分公式中,d表示逻辑模型索引文档,f表示逻辑模型索引文档d的文档字段,t表示关键词,tf(tinf)=sqrt(frequency)表示关键词t在文档字段f中的出现次数frequency的平方根,weight(f)表示文档字段f的评分权重值,weight(f)*tf(tinf)表示关键词t的tf值与文档字段f的评分权重值的乘积,σfindweight(f)*tf(tinf)表示关键词在逻辑模型索引文档d中的总值,x表示逻辑模型索引文档d的预置文档字段,v(x)表示逻辑模型索引文档d中的文档字段“使用次数”,“使用次数”的数据来源信息是从逻辑模型信息的“使用次数”字段得到的,表示的是该逻辑模型索引文档d对应的逻辑模型的使用频率,score(tind)表示逻辑模型索引文档d的分数值,在已知出现次数frequency、v(x)和weight(f)的值的情况下,打分模块得到每一个逻辑模型索引文档的分数值,从而可以实现逻辑模型索引文档集合中每一个逻辑模型索引文档的具体的打分过程,从而使得逻辑模型查询结果中包含每个逻辑模型索引文档及其分数值,方便业务用户根据逻辑模型索引文档的分数值可以知道最匹配本次查询的逻辑模型,由于还综合了逻辑模型的使用频率,那么业务用户根据查询结果得到的逻辑模型将更加精确。

结合本申请第二方面第三实施方式,本申请第二方面第六实施方式中,

所述查询单元,还用于根据所述关联关系查询语句中的预置关联关系索引查询字段,从索引库的所有关联关系索引文档中获取对应所述预置关联关系索引查询字段的文档字段的分词结构信息;

所述查询单元,还用于判断所述分词结构信息中是否包含所述关键词;

所述查询单元,还用于当所述分词结构信息对应的文档字段包含所述关键词时,根据所述分词结构信息确定对应键值对的至少一个文档标识,根据所述至少一个文档标识确定对应的关联关系索引文档,根据所述至少一个关联关系索引文档得到关联关系索引文档集合;

所述查询单元,还用于当所述分词结构信息对应的文档字段不包含所述关键词时,判断所述所有关联关系索引文档中对应所述预置关联关系索引查询字段的其他文档字段的分词结构信息是否包含所述关键词。

在查询语句单元生成关联关系查询语句后,查询单元根据关联关系查询语句中的预置关联关系索引查询字段,预置关联关系索引查询字段即每个关联关系索引文档中的源逻辑字段和目标逻辑字段,从索引库的所有关联关系索引文档中获取对应预置关联关系索引查询字段的文档字段的分词结构信息,即源逻辑字段和目标逻辑字段的分词结构信息,从而查询单元根据分词结构信息可以判断对应的文档字段是否包含关键词,而由于分词结构信息与文档标识是键值对存储在索引库中的,如果包含,则查询单元根据分词结构信息确定对应键值对的至少一个文档标识,根据至少一个文档标识确定对应的至少一个关联关系索引文档,将这些关联关系索引文档作为一个关联关系索引文档集合;如果不包含,则查询单元判断所有关联关系索引文档中对应预置关联关系索引查询字段的其他文档字段的分词结构信息是否包含关键词,从而实现了遍历查询索引库中所有关联关系索引文档。

结合本申请第二方面第六实施方式,本申请第二方面第七实施方式中,

所述打分模块,还用于分别获取所述关联关系索引文档集合中每一个关联关系索引文档的所述预置关联关系索引查询字段对应的源模型字段和目标模型字段中所述关键词的出现次数;

所述打分模块,还用于根据所述评分权重信息确定所述源模型字段和所述目标模型字段的评分权重值;

所述打分模块,还用于将所述源模型字段中所述关键词的出现次数、所述目标模型字段中所述关键词的出现次数、所述源模型字段的评分权重值和所述目标模型字段的评分权重值代入关联关系索引文档打分公式score(tind)=weight(y1)*tf(tiny1)+weight(y2)*tf(tiny2)进行计算,其中,y1表示源模型字段,y2表示目标模型字段,weight(y1)表示所述源模型字段y1的评分权重值,weight(y2)表示所述目标模型字段y2的评分权重值,tf(tiny1)=sqrt(frequency1)表示关键词t在源模型字段y1中的出现次数frequency1的平方根,tf(tiny2)=sqrt(frequency2)表示关键词t在源模型字段y2中的出现次数frequency2的平方根,score(tind)表示所述关联关系索引文档d的分数值;

所述打分模块,还用于得到所述关联关系索引文档集合中每一个关联关系索引文档的分数值,将所述关联关系索引文档集合及所述分数值作为关联关系查询结果。

基于第二方面第六实施方式中查询单元得到关联关系索引文档,预置关联关系索引查询字段对应的是关联关系索引文档集合中每一个关联关系索引文档中的源模型字段和目标模型字段,因此,打分模块获取每一个关联关系索引文档的源模型字段和目标模型字段中关键词的出现次数,根据评分权重信息确定源模型字段和目标模型字段的评分权重值,将源模型字段中关键词的出现次数、目标模型字段中关键词的出现次数、源模型字段的评分权重值和目标模型字段的评分权重值代入关联关系索引文档的打分公式score(tind)=weight(y1)*tf(tiny1)+weight(y2)*tf(tiny2)进行计算,其中,y1表示源模型字段,y2表示目标模型字段,weight(y1)表示源模型字段y1的评分权重值,weight(y2)表示目标模型字段y2的评分权重值,tf(tiny1)=sqrt(frequency1)表示关键词t在源模型字段y1中的出现次数frequency1的平方根,tf(tiny2)=sqrt(frequency2)表示关键词t在源模型字段y2中的出现次数frequency2的平方根,score(tind)表示关联关系索引文档d的分数值,已知weight(y1)、weight(y2)、frequency1和frequency2的情况下,得到该关联关系索引文档的分数值,实现了关联关系索引文档集合中每一个关联关系索引文档的具体的打分过程,从而使得关联关系查询结果中包含每个关联关系索引文档及分数值,方便业务用户根据关联关系索引文档的分数值可以知道最匹配本次查询的逻辑模型关联关系。

结合本申请第二方面第一实施方式、第二方面第二实施方式、第二方面第三实施方式、第二方面第四实施方式、第二方面第五实施方式、第二方面第六实施方式及第二方面第七实施方式,本申请第二方面第八实施方式中,所述装置还包括:

存储库创建模块,用于获取数据仓库中的物理表;

所述存储库创建模块,还用于根据所述物理表创建逻辑模型,并将所述逻辑模型保存至逻辑模型存储库中,所述逻辑模型包括逻辑模型信息和逻辑模型字段信息,所述逻辑模型信息的字段包括逻辑模型标识、物理表名、逻辑模型名、业务描述、使用次数、模型更新时间及数据更新时间,所述逻辑模型字段信息的字段包括物理字段名、逻辑字段名及业务描述;

所述存储库创建模块,还用于通过频繁集挖掘方式获取逻辑模型关联关系的关联关系数据,并将所述关联关系数据保存至逻辑模型存储库中,所述关联关系数据包括关联关系hash值、源逻辑模型标识、目标逻辑模型标识及关联路径信息。

在创建索引文档之前,存储库创建模块需要将数据仓库中的物理表建模为逻辑模型,将逻辑模型保存至逻辑模型存储库中,物理表是一系列二维数组的集合,用于代表数据仓库中存储的数据对象,逻辑模型包括逻辑模型信息和逻辑模型字段信息,逻辑模型信息的字段包括逻辑模型标识、物理表名、逻辑模型名、业务描述、使用次数、模型更新时间及数据更新时间,逻辑模型字段信息的字段包括物理字段名、逻辑字段名及业务描述,逻辑模型存储库中的存储介质一般选择关系型数据库,逻辑模型信息和逻辑模型字段信息一般采用二维表的方式;存储库创建模块收集统计业务用户设置的历史逻辑模型关联关系或者技术人员预先设置的逻辑模型关联关系,通过频繁集挖掘方式获取逻辑模型关联关系的关联关系数据,并将关联关系数据保存至逻辑模型存储库中,关联关系数据包括关联关系hash值、源逻辑模型标识、目标逻辑模型标识及关联路径信息。在逻辑模型信息的字段中增加了使用次数、模型更新时间及数据更新时间这三个字段,可以记录逻辑模型的使用频率和更新状况,使得业务用户查询到的逻辑模型更精确,而逻辑模型关联关系的关联关系数据可以有效的避免业务用户重复设置以前设置过的逻辑模型关联关系。

本申请第三方面提供一种服务器,包括:

处理器、收发器及存储器,其中,所述存储器可以用于存储所述处理器执行的代码;

所述处理器、所述收发器及所述存储器通过总线系统连接;

所述收发器,用于获取业务用户输入的检索词;

所述处理器,用于根据所述检索词查询索引库,确定逻辑模型索引文档集合,所述逻辑模型索引文档集合包括至少一个逻辑模型索引文档,所述索引库包括所述至少一个逻辑模型索引文档的文档标识、文档字段的分词结构信息及评分权重信息,所述分词结构信息包括对应文档字段的字段数据的分词结构,所述评分权重信息包括对应文档字段的评分权重值,所述逻辑模型索引文档中至少一个文档字段的分词结构信息中包含所述检索词,所述逻辑模型索引文档对应一个逻辑模型的索引信息;

所述处理器,还用于根据逻辑模型索引文档打分公式及所述评分权重信息,对所述逻辑模型索引文档集合中每一个逻辑模型索引文档进行打分,得到逻辑模型查询结果。

在业务用户使用即席查询系统进行即席查询之前,技术人员已经在系统中建立好索引库,索引库中包括至少一个逻辑模型索引文档的文档标识、每个逻辑模型索引文档的文档字段的分词结构信息及评分权重信息,分词结构信息包括对应文档字段的字段数据的分词结构,评分权重信息包括对应文档字段的评分权重值,并且逻辑模型索引文档对应一个逻辑模型的索引信息。收发器获取业务用户输入的检索词,处理器根据检索词查询索引库,如果检索词出现在某个逻辑模型索引文档的一个或多个文档字段的分词结构信息中,就表明该逻辑模型索引文档是符合查询要求的,遍历索引库中所有的逻辑模型索引文档,确定出包括至少一个符合本次查询要求的逻辑模型索引文档的逻辑模型索引文档集合,预先设置好了逻辑模型索引文档打分公式,处理器根据逻辑模型索引文档打分公式和评分权重信息可以实现逻辑模型索引文档集合中每一个逻辑模型索引文档的打分,对查询到的逻辑模型索引文档集合中每一个逻辑模型索引文档进行打分后,得到的逻辑模型查询结果是具有分数值的至少一个逻辑模型索引文档,使得逻辑模型索引文档存在多个时,业务用户可以直观的看到逻辑模型查询结果中每个逻辑模型索引文档及其分数值,由于一个逻辑模型索引文档对应一个逻辑模型的索引信息,那么业务用户根据逻辑模型查询结果中的逻辑模型索引文档的分数值可以快速选择出需求的逻辑模型,与现有技术相比,业务用户可以按照逻辑模型查询结果快速的选择逻辑模型,减少了业务用户识别和选择逻辑模型的工作量和耗时,提高了即席查询的效率。

本申请的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

本申请的第五方面提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

附图说明

为了更清楚地说明本申请实施例技术方案,下面将对实施例和现有技术描述中所需要使用的附图作简单地介绍。

图1为本申请提供的系统构架示意图;

图2为本申请提供的逻辑模型的“逻辑模型”表和“逻辑模型字段”表的示意图;

图3为本申请提供的逻辑模型关联关系的“关联关系”表的示意图;

图4为本申请提供的服务器的一个实施例结构示意图;

图5为本申请提供的即席查询的方法的一个实施例流程示意图;

图6为本申请提供的关键词对应的索引文档的字段位置信息的示意图;

图7为本申请提供的即席查询的装置的一个实施例结构示意图;

图8为本申请提供的即席查询的装置的另一个实施例结构示意图;

图9为本申请提供的即席查询的装置的又一个实施例结构示意图;

图10为本申请提供的即席查询的装置的再一个实施例结构示意图。

具体实施方式

本申请提供了一种即席查询的方法、装置及服务器,增加了逻辑模型索引文档,对查询到的逻辑模型索引文档集合中每一个逻辑模型索引文档进行打分,使得业务用户看到的逻辑模型查询结果是具有分数值的至少一个逻辑模型索引文档,从而方便业务用户的逻辑模型识别和选择,提高了即席查询的效率。

下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述。

首先简单介绍本申请应用的系统构架或场景。

本申请的系统构架如图1所示,包括ui、查询服务、打分服务、索引库、索引服务、逻辑模型存储库及数据仓库,各组件之间的连接方式为数据流向。

如图1中,ui为提供给业务用户进行检索词输入及查看查询结果的可视化界面;

数据仓库用于存储物理表,物理表是一系列二维数组的集合,用于代表数据仓库中存储的数据对象,物理表由列和行组成,如一个“用户基本信息”的物理表,每个列是所有用户的特定信息,如“姓名”,而每行包含特定用户的所有信息,如“姓名”及“年龄”等。

逻辑模型存储库用于存储逻辑模型的逻辑模型信息和逻辑模型字段信息,以及逻辑模型关联关系的关联关系数据。逻辑模型可以映射到一个或多个物理表,并指定了逻辑模型中的列映射到物理表中列的方式,通常逻辑模型隐藏了物理表中对业务人员无意义的列,如“用户编号”,增加了对业务人员经常使用的列,这些列通常描述为物理表多个列的四则运算表达式,如逻辑模型中“利润”列,映射到物理表中“收入”和“支出”两列相减的表达式,逻辑模型通常使用业务人员的术语描述物理表及物理表中的列,以便提高业务人员使用体验。一般逻辑模型的逻辑模型信息和逻辑模型字段信息以及关联关系数据也是以二维表的形式存储的,如图2所示,“逻辑模型”表存储逻辑模型和物理表的映射关系,“逻辑模型字段”表存储逻辑模型字段和物理字段的映射关系,“逻辑模型标识”是“逻辑模型”表的主键(primarykey,pk),“逻辑字段标识”是“逻辑模型字段”表的pk,其中“逻辑模型字段”表中的“逻辑模型标识”字段是外键(foreignkey,fk),那么“逻辑模型字段”表中“物理字段名”字段对应的物理表名,可以通过“逻辑模型字段”表的fk“逻辑模型标识”字段查找“逻辑模型”表中的“物理表名”字段获取到;逻辑模型关联关系的关联关系数据也是二维表的形式,逻辑模型关联关系具体为:例如,业务用户设置的查询输出列为“用户号码”、“性别”及“短信发送次数”三个逻辑字段,其中“用户号码”和“性别”来自“逻辑模型1”,“短信发送次数”来自“逻辑模型2”,“逻辑模型1”和“逻辑模型2”分别对应“物理表1”和“物理表2”,执行查询操作的时候,依照“逻辑模型1”和“逻辑模型2”设置的关联关系,生成“物理表1”、“物理表2”的连接操作将两张物理表组合起来,然后获取相应的查询输出列的三个逻辑字段的字段数据,物理表的连接操作语句语法为join,ansi标准包括列出了五种join方式:内连接(inner)、全外连接(fullouter)、左外连接(leftouter)、右外连接(rightouter)和交叉连接(cross)。逻辑模型关联关系通常也提供如上的五种关联关系设置方式。如图3所示,由于逻辑模型关联关系的关联关系数据是通过频繁集挖掘方式获取到的,而且目前对于业务用户来说,主要的逻辑模型关联关系是两两逻辑模型之间关联关系,所以“关联关系”表中字段只涉及到源逻辑模型标识、目标逻辑模型标识以及关联路径,需要说明的是,三个甚至更多逻辑模型之间的逻辑模型关联关系同样适用于本申请。图3中关联关系hash值作为“关联关系”表的pk,关联关系hash值的具体计算公式为“关联关系hash值=hashcode[源物理表名+目标物理表名+(源模型字段1的物理字段名+目标模型对应物理字段名)+…+(源模型字段n的物理字段名+目标模型对应物理字段名)]”,其中,hashcode是hash函数,其参数由多个字符串拼接而成,字符串前面两个是物理表名,后面是多个关联字段对;两个有关联关系的逻辑模型,其关联关系是没有方向的,通过对物理表名的第一个字母或汉字做降序排列,第一个逻辑模型记录为源模型,第二个逻辑模型记录为目标模型,将关联关系变成有向的,从而实现如果两个关联关系包含的逻辑模型是相同,相应的关联的方向也是确定的,字段对的顺序按照字段对中源模型的物理字段名降序排列确定。

索引服务是获取到逻辑模型存储库中的逻辑模型的逻辑模型信息和逻辑模型字段信息以及逻辑模型关联关系的关联关系数据,从而建立逻辑模型索引文档和关联关系索引文档,得到索引库中的逻辑模型索引文档和关联关系索引文档的文档标识、文档字段的分词结构信息及评分权重信息。建立的逻辑模型索引文档如表1,关联关系索引文档如表2,表1中数据来源信息表示每个文档字段所对应的逻辑模型的“逻辑模型”表和“逻辑模型字段”表中的字段数据,例如,“文档标识”的字段数据的数据来源信息是“逻辑模型”表的“逻辑模型标识”,“物理表名”的字段数据的数据来源信息是“逻辑模型”表“物理表名”等等,分词处理信息和评分权重信息都是预置的;表2中数据来源信息表示每个文档字段所对应的逻辑模型关联关系的“关联关系”表中的字段的字段数据,分词处理信息和评分权重信息都是预置的。

表1

表2

按照表1和表2中文档字段的数据来源信息可以得到字段数据,再按照配置的分词处理信息对需要分词的字段数据进行分词,得到分词结构信息,将分词结构信息和文档标识键值对存储到索引库;不需要分词的字段数据,则直接存储到索引库。其中,在配置分词处理信息时,字段数据需不需要分词的标准是根据字段数据的数据类型和重要程度等标准来设置的,例如表1中“使用次数”、“模型更新时间”及“数据更新时间”这三个文档字段的字段数据明显是数值,分词是没有意义的。在配置评分权重信息时,考虑到的是每个文档字段的重要程度,例如表2中“关联关系标识”、“逻辑模型标识”及“关联路径”这三个文档字段,都是在关联关系索引文档打分时不考虑的,因此,“关联关系标识”、“逻辑模型标识”及“关联路径”这三个文档字段的评分权重值都设置为“0”,“源模型字段”和“目标模型字段”这两个文档字段在关联关系索引文档打分时需要用到,因此,“源模型字段”和“目标模型字段”这两个文档字段的评分权重值设置为“1”。

本申请主要实现的便是图1所示的系统构架中查询服务与打分服务,提出了一种即席查询的方法来实现查询服务与打分服务,而本申请的即席查询的方法可以在以服务器为实体装置的设备上运行,具体如下:

请参阅图4,本申请提供一种服务器,包括:

处理器401、收发器402及存储器403,其中,存储器403可以用于存储处理器401执行的代码;

处理器401、收发器402及存储器403通过总线系统404连接;

收发器402,用于获取业务用户输入的检索词;

处理器401,用于根据检索词查询索引库,确定逻辑模型索引文档集合,逻辑模型索引文档集合包括至少一个逻辑模型索引文档,索引库包括至少一个逻辑模型索引文档的文档标识、文档字段的分词结构信息及评分权重信息,分词结构信息包括对应文档字段的字段数据的分词结构,评分权重信息包括对应文档字段的评分权重值,逻辑模型索引文档中至少一个文档字段的分词结构信息中包含检索词,逻辑模型索引文档对应一个逻辑模型的索引信息;

处理器401,还用于根据逻辑模型索引文档打分公式及所述评分权重信息,对逻辑模型索引文档集合中每一个逻辑模型索引文档进行打分,得到逻辑模型查询结果。

本实施例中,在业务用户进行即席查询之前,技术人员已经在存储器403中建立好索引库,索引库中包括至少一个逻辑模型索引文档的文档标识、每个逻辑模型索引文档的文档字段的分词结构信息及评分权重信息,分词结构信息包括对应文档字段的字段数据的分词结构,评分权重信息包括对应文档字段的评分权重值,并且逻辑模型索引文档对应一个逻辑模型的索引信息。当业务用户在ui输入检索词后,收发器402获取业务用户输入的检索词,处理器401根据检索词查询索引库,如果检索词出现在了某个逻辑模型索引文档的一个或多个文档字段的分词结构信息中,就表明该逻辑模型索引文档是符合查询要求的,遍历索引库中所有的逻辑模型索引文档,确定出包括至少一个符合本次查询要求的逻辑模型索引文档的逻辑模型索引文档集合,预先设置好了逻辑模型索引文档打分公式,处理器401根据逻辑模型索引文档打分公式和评分权重信息可以实现逻辑模型索引文档集合中每一个逻辑模型索引文档的打分,对查询到的每个逻辑模型索引文档进行打分后,得到的逻辑模型查询结果是具有分数值的至少一个逻辑模型索引文档,使得逻辑模型索引文档存在多个时,业务用户可以直观的看到逻辑模型查询结果中每个逻辑模型索引文档及其分数值,由于一个逻辑模型索引文档对应一个逻辑模型的索引信息,那么业务用户根据逻辑模型查询结果中的逻辑模型索引文档的分数值可以快速选择出需求的逻辑模型,与现有技术相比,业务用户可以按照逻辑模型查询结果快速的选择逻辑模型,减少了业务用户识别和选择逻辑模型的工作量和耗时,提高了即席查询的效率。

以上图4所示的实施例以服务器作为实体装置为例对即席查询的过程进行说明,下面通过流程实施例对即席查询的方法进行说明。

请参阅图5,本申请实施例提供一种即席查询的方法,包括:

501、获取业务用户输入的检索词;

本实施例中,当业务用户想要进行即席查询时,可以在提供的ui的检索框中输入检索词,通过ui获取到业务用户输入的检索词,此外,在没有ui的情况下,也可以通过其他方式获取业务用户输入的检索词,例如业务用户通过语音输入等。

502、根据检索词查询索引库,确定逻辑模型索引文档集合,逻辑模型索引文档集合包括至少一个逻辑模型索引文档,索引库包括至少一个逻辑模型索引文档的文档标识、文档字段的分词结构信息及评分权重信息;

本实施例中,在业务用户进行即席查询之前,技术人员已经建立好索引库,索引库中包括至少一个逻辑模型索引文档的文档标识,每个逻辑模型索引文档的文档字段的分词结构信息及评分权重信息,分词结构信息包括对应文档字段的字段数据的分词结构,评分权重信息包括对应文档字段的评分权重值,并且一个逻辑模型索引文档对应一个逻辑模型的索引信息,根据检索词查询索引库,如果检索词出现在了某个逻辑模型索引文档的一个或多个文档字段的分词结构信息中,就表明该逻辑模型索引文档是符合查询要求的,遍历索引库中所有的逻辑模型索引文档,确定出包括至少一个符合本次查询要求的逻辑模型索引文档的逻辑模型索引文档集合。

503、根据逻辑模型索引文档打分公式及评分权重信息,对逻辑模型索引文档集合中每一个逻辑模型索引文档进行打分,得到逻辑模型查询结果。

本实施例中,预先设置好了逻辑模型索引文档打分公式,根据逻辑模型索引文档打分公式及评分权重信息可以实现对逻辑模型索引文档集合中每一个逻辑模型索引文档的打分,对查询到的至少一个逻辑模型索引文档进行打分后,得到的逻辑模型查询结果是逻辑模型索引文档集合以及逻辑模型索引文档集合中每一个逻辑模型索引文档的分数值。

本申请实施例中,由于得到的逻辑模型查询结果是逻辑模型索引文档集合以及逻辑模型索引文档集合中每一个逻辑模型索引文档的分数值,使得逻辑模型索引文档存在多个时,业务用户可以直观的看到每个逻辑模型索引文档及其分数值,由于一个逻辑模型索引文档对应一个逻辑模型的索引信息,那么业务用户根据逻辑模型查询结果中的逻辑模型索引文档的分数值可以快速选择出需求的逻辑模型,与现有技术相比,业务用户可以按照逻辑模型查询结果快速的选择逻辑模型,减少了业务用户识别和选择逻辑模型的工作量和耗时,提高了即席查询的效率。

业务用户通过上述图5所示的实施例的方法进行查询之前,技术人员需要先再构建好索引库,下面通过实施例进行具体说明。

可选的,本申请的一些实施例中,获取业务用户输入的检索词之前,还包括:

创建索引文档,设置索引文档的文档标识及文档字段的配置信息,索引文档包括逻辑模型索引文档和关联关系索引文档,逻辑模型索引文档对应一个逻辑模型的索引信息,关联关系索引文档对应一个逻辑模型关联关系的索引信息,配置信息包括数据来源信息、分词处理信息及评分权重信息,数据来源信息对应逻辑模型的逻辑模型信息和逻辑模型字段信息,或数据来源信息对应逻辑模型关联关系的关联关系数据,评分权重信息表示对应文档字段的评分权重值;

根据数据来源信息从逻辑模型存储库中获取索引文档中文档字段的字段数据;

根据分词处理信息判断是否对字段数据进行文本分词处理;

若是,则对字段数据进行文本分词处理,得到分词结构信息,将分词结构信息与文档标识键值对存储至索引库中;

若否,则将字段数据存储至索引库中。

本实施例中,先创建索引文档,设置索引文档的文档标识及文档字段的配置信息,配置信息包括数据来源信息、分词处理信息及评分权重信息,数据来源信息对应逻辑模型的逻辑模型信息和逻辑模型字段信息,或数据来源信息对应逻辑模型关联关系的关联关系数据,评分权重信息表示对应文档字段的评分权重值。在创建索引文档时,由于考虑到业务用户的查询需求可能是单个逻辑模型,也可能是多个逻辑模型之间的关联,那么逻辑模型和逻辑模型关联关系都创建了索引文档,因此,索引文档包括逻辑模型索引文档和关联关系索引文档,

一、对于逻辑模型索引文档具体如下:

1、创建如表1所示的索引文档,文档字段包括“文档标识”、“物理表名”、“逻辑模型名”、“业务描述”、“字段信息”、“字段业务描述”、“使用次数”、“模型更新时间”及“数据更新时间”,其中“文档标识”的字段数据就是索引文档的文档标识,文档字段的配置信息包括数据来源信息、分词处理信息及评分权重信息,数据来源信息就是文档字段的字段数据的对应到图2所示的“逻辑模型”表和“逻辑模型字段”表中的字段,其中,在配置分词处理信息时,字段数据需不需要分词的标准是根据字段数据的数据类型和重要程度等标准来设置的,例如表1中“使用次数”、“模型更新时间”及“数据更新时间”这三个文档字段的字段数据明显是数值,分词是没有意义的。在配置评分权重信息时,考虑到的是每个文档字段的重要程度,例如表2中“关联关系标识”、“逻辑模型标识”及“关联路径”这三个文档字段,都是在关联关系索引文档打分时不考虑的,因此,“关联关系标识”、“逻辑模型标识”及“关联路径”这三个文档字段的评分权重值都设置为“0”,“源模型字段”和“目标模型字段”这两个文档字段在关联关系索引文档打分时需要用到,因此,“源模型字段”和“目标模型字段”这两个文档字段的评分权重值设置为“1”;

2、根据表1中每个文档字段对应的数据来源信息获取字段数据,例如,使用“个人客户”的逻辑模型得到的逻辑模型索引文档如下表3所示,

表3

从表3中,得到“文档标识”、“物理表名”、“逻辑模型名”、“业务描述”、“字段信息”、“字段业务描述”、“使用次数”、“模型更新时间”及“数据更新时间”的字段数据;

3、根据分词处理信息判断是否对字段数据进行文本分词处理;

4、“文档标识”、“使用次数”、“模型更新时间”及“数据更新时间”的分词处理信息是不分词,那么直接存储到索引库中;

5、“物理表名”、“逻辑模型名”、“业务描述”、“字段信息”和“字段业务描述”的分词处理信息是分词,那么使用分词器对以上文档字段的字段数据进行分词处理,分词器所采用的分词方法是预先设置好适用于即席查询的,例如,将“逻辑模型名”的字段数据“个人客户”分词为“个人”和“客户”两个词,将分词处理的分词结构记录为分词结构信息,并且将“逻辑模型名”的分词结构信息与文档标识“001”构造为键值对,以键值对存储的方式将分词结构信息和文档标识存储到索引库中。

二、对于关联关系索引文档具体如下:

1、创建如表2所示的关联关系索引文档,文档字段包括“关联关系标识”、“逻辑模型标识”、“源模型字段”、“目标模型字段”及“关联路径”,其中“文档标识”的字段数据就是索引文档的文档标识,文档字段的配置信息包括数据来源信息、分词处理信息及评分权重信息,数据来源信息就是文档字段的字段数据的对应到图3所示的“关联关系”表,分词处理信息包括分词和不分词两种方式,例如“关联关系标识”、“逻辑模型标识”及“关联路径”无需进行分词处理,而“源模型字段”和“目标模型字段”需要进行分词处理,每个文档字段的评分权重值是根据预先设置的评分标准配置的;

2、根据表2中每个文档字段对应的数据来源信息获得字段数据,例如,使用两个逻辑模型001和002的关联关系数据得到的关联关系索引文档如下表4所示,

表4

表4中,得到“关联关系标识”、“逻辑模型标识”、“源模型字段”、“目标模型字段”及“关联路径”的字段数据;

3、根据分词处理信息判断是否对字段数据进行文本分词处理;

4、“关联关系标识”、“逻辑模型标识”及“关联路径”的分词处理信息是不分词,那么直接存储到索引库中;

5、“源模型字段”及“目标模型字段”的分词处理信息是分词,那么使用分词器对以上文档字段的字段数据进行分词处理,分词器所采用的分词方法是预先设置好适用于即席查询的,将分词处理的分词结构记录为分词结构信息,并且将分词结构信息与文档标识构造为键值对,以键值对存储的方式将分词结构信息和文档标识存储到索引库中。

上述实施例对索引库中文档标识、文档字段的分词结构信息等信息是如何得到的进行了说明,下面对图5所示的实施例中的步骤502进行详细说明,具体如下:

可选的,本申请的一些实施例中,根据检索词查询索引库,确定逻辑模型索引文档集合,包括:

对检索词进行分词处理,得到关键词;

根据预置查询语句规则和关键词生成逻辑模型查查询语句,逻辑模型查查询语句包括预置模型索引查询字段,逻辑模型查询语句用于查询逻辑模型索引文档,预置模型索引查询字段为逻辑模型索引文档的文档字段;

根据逻辑模型查询语句查询索引库,确定逻辑模型索引文档集合,所述逻辑模型索引文档集合包括至少一个逻辑模型索引文档。

本实施例中,在获取到业务用户输入的检索词之后,考虑到业务用户输入的检索词可能为口语化或不规范的词,如此的话,按照此检索词来查询索引库,是无法查询到逻辑模型索引文档的,因为逻辑模型索引文档的部分文档字段的分词结构信息都是分词器按照分词要求对字段数据进行分词处理的,所以获取到检索词之后,需要通过分词器对检索词进行分词处理,分词处理得到的关键词可能为一个或者多个,再根据预置查询语句规则和关键词生成逻辑模型查询语句,预置查询语句规则是一套预设的查询语句生成规则,生成逻辑模型查询语句时,预置了需要查询的模型索引查询字段,预置模型索引查询字段为逻辑模型索引文档的文档字段,这样就能实现根据逻辑模型查询语句查询索引库,从而确定符合逻辑模型查询语句的逻辑模型索引文档时,对查询的范围进行限定,而不是对每个逻辑模型索引文档的所有文档字段都进行遍历查询,可以进一步节省查询时间,并且通过预置查询语句规则和关键词生成逻辑模型查询语句,从而查询索引库确定包括至少一个逻辑模型索引文档的逻辑模型索引文档集合,使得查询服务可以自动完成。

具体的实现步骤为:

(1)、获取到业务用户输入的检索词之后,考虑到业务用户输入的检索词可能为口语化或不规范的词,如此的话,按照此检索词来查询索引库,是无法查询到索引文档的,因为索引文档的文档字段的分词结构信息都是分词器按照分词要求进行分词处理的,所以获取到检索词之后,需要通过分词器对检索词进行分词处理,分词处理得到的关键词可能为一个或者多个;

(2)、预置查询语句规则通过json语言格式来描述,json语言格式如下:

针对预置查询语句规则的解释为,fields为查询范围表达式,fields中的{1}和{2}等元素为预置模型索引查询字段,例如预置模型索引查询字段为逻辑模型索引文档的“字段信息”和“字段业务描述”,那么fields中的{1}和{2}分别是“字段信息”和“字段业务描述”;query为查询表达式,query中{3}为关键词,当关键词为多个时,query中关键词之间通过逻辑运算符“and”连接,表示关键词之间的关系为和,通过逻辑运算符“or”连接,表示关键词之间的关系为或;sort为查询排序表达式,{4}处的值为排序字段的设置,默认为分数值(score),即为按照逻辑模型索引文档的得分作为排序字段,也可以使用逻辑模型索引文档中其他文档字段,{5}处的值为排序类型,取值范围包括降序(desc)和升序(asc)两种,需要说明的是,本申请的实施例中无需考虑逻辑模型查询结果的逻辑模型索引文档的排序,所以sort不是必须的,但是如果增加了sort,则可以按照逻辑模型索引文档的分数值进行降序或升序的排列,逻辑模型查询结果展示给业务用户会更加直观;

举例说明,两个关键词“产品标示”和“套餐”之间的关系为“or”,逻辑模型查询语句如下:

(3)、在(2)中获得逻辑模型查询语句之后,根据逻辑模型查询语句查询索引库,确定逻辑模型索引文档集合,逻辑模型索引文档集合包括至少一个逻辑模型索引文档。

在上述实施例中,如果关键词为多个,并且关键词之间通过逻辑运算符“and”连接时,那么得到的逻辑模型索引文档对应的逻辑模型之间,可能就会存在关联关系,因此,还需要进行关联关系索引文档的查询,通过以上实施例可知,逻辑模型关联关系的索引信息是已经存在的,下面通过实施例对关联关系索引文档的查询进行说明。

可选的,本申请的一些实施例中,当关键词的数量大于一个且多个关键词之间为和的关系时,方法还包括:

根据预置查询语句规则和关键词生成关联关系查询语句,关联关系查询语句包括预置关联关系索引查询字段,关联关系查询语句用于查询关联关系索引文档,预置关联关系索引查询字段对应关联关系索引文档的源模型字段和目标模型字段;

根据关联关系查询语句查询索引库,确定关联关系索引文档集合,关联关系索引文档集合包括至少一个关联关系索引文档;

根据关联关系索引文档打分公式及评分权重信息,对关联关系索引文档集合中每一个关联关系索引文档进行打分,得到关联关系查询结果。

本实施例中,基于上述实施例中创建的表2所示的关联关系索引文档,该实施例主要考虑的是两个逻辑模型之间的逻辑模型关联关系,根据关键词和预置查询语句规则生成关联关系查询语句,关联关系查询语句包括预置关联关系索引查询字段,预置关联关系索引查询字段对应关联关系索引文档的源模型字段和目标模型字段,例如,两个关键词“term1”和“term2”之间的关系为“and”,那么关联关系查询语句的示例如下:

查询1:

{"query_string":{"fields":["源模型字段"],"query":"term1"}}

并且

{"query_string":{"fields":["目标模型字段"],"query":"term2"}}

查询2:

{"query_string":{"fields":["源模型字段"],"query":"term2"}}

并且

{"query_string":{"fields":["目标模型字段"],"query":"term1"}}

需要说明的是,关键词term1可能在源模型字段或者目标模型字段,相应的,关键词term2也可能在目标模型字段或者源模型字段,因此,两个逻辑模型之间的关联关系的查询语句需要以上查询1和查询2两组。由于物理表的连接操作语句语法为join,ansi标准包括列出了五种join方式:内连接(inner)、全外连接(fullouter)、左外连接(leftouter)、右外连接(rightouter)和交叉连接(cross),逻辑模型的关联关系通常也提供如上的五种关联关系设置方式,如果逻辑模型a和逻辑模型b是leftouter,那么逻辑模型b和逻辑模型a是rightouter,在索引库只会记录一条逻辑模型a和逻辑模型b之间的逻辑模型关联关系的关联关系数据(关联路径为aleftouterb),而逻辑模型b和逻辑模型a之间的逻辑模型关联关系的关联关系数据(关联路径为brightoutera)将不会再记录于索引库中。得到关联关系查询语句之后,再根据关联关系查询语句查询索引库,确定的关联关系索引文档集合中包括符合查询要求的至少一个关联关系索引文档,根据关联关系索引文档打分公式及评分权重信息,对关联关系索引文档集合中每一个关联关系索引文档进行打分,得到关联关系查询结果。由于一个关联关系索引文档对应一个逻辑模型关联关系的索引信息,那么业务用户通过关联关系查询结果中的关联关系索引文档集合以及关联关系索引文档集合中每一个关联关系索引文档的分数值,可以选择出关联关系索引文档,由关联关系索引文档索引得到对应的逻辑模型关联关系,在现有技术中,当业务用户的查询结果输出列中的逻辑字段来自多个不同的逻辑模型的时候,业务用户手动建立多个不同的逻辑模型之中两两逻辑模型之间的关联关系,从而将多个逻辑模型对应的物理表组合起来,因此,本方案无须业务用户手动设置逻辑模型关联关系,从而进一步的提高了即席查询的效率

以上实施例中详细的说明了,根据检索词的分词得到的关键词,并且根据关键词和预置查询语句规则生成逻辑模型查询语句和关联关系查询语句,下面对分别对如何根据逻辑模型查询语句确定逻辑模型索引文档集合和根据关联关系查询语句确定关联关系索引文档集合进行详细说明。

(一)、根据逻辑模型查询语句确定逻辑模型索引文档集合;

可选的,本申请的一些实施例中,根据逻辑模型查询语句查询索引库,确定逻辑模型索引文档集合,包括:

根据逻辑模型查询语句中的预置模型索引查询字段,从索引库的所有逻辑模型索引文档中获取对应预置模型索引查询字段的文档字段的分词结构信息;

根据分词结构信息判断对应的文档字段是否包含关键词;

若包含,则根据分词结构信息确定对应键值对的至少一个文档标识,根据至少一个文档标识确定对应的至少一个逻辑模型索引文档,根据至少一个逻辑模型索引文档得到逻辑模型索引文档集合;

若不包含,则判断所有逻辑模型索引文档中对应预置模型索引查询字段的其他文档字段的分词结构信息是否包含关键词。

本实施例中,根据逻辑模型查询语句中的预置模型索引查询字段,预置模型索引查询字段即每个逻辑模型索引文档中的特定的文档字段,而且特定的文档字段的字段数据肯定是经过分词处理的,因为没有分词处理的文档字段没有查询的意义,从索引库的所有逻辑模型索引文档中获取对应预置模型索引查询字段的文档字段的分词结构信息,由于分词结构信息是一个文档字段的字段数据的分词结构,那么分词结构中是否包含关键词是可以查询到的,从而根据分词结构信息可以判断对应的文档字段是否包含关键词,而由于分词结构信息与文档标识是键值对存储在索引库中的,如果包含,则根据分词结构信息确定对应键值对的文档标识,根据文档标识确定对应的逻辑模型索引文档,确定的逻辑模型索引文档的数量至少是一个以上,将这些逻辑模型索引文档作为一个逻辑模型索引文档集合;如果不包含,则判断所有逻辑模型索引文档中对应预置模型索引查询字段的其他文档字段的分词结构信息是否包含关键词,从而实现了遍历查询索引库中所有逻辑模型索引文档。

上述实施例中描述了逻辑模型索引文档的确定过程,在逻辑模型索引文档确认之后,还需要对逻辑模型索引文档进行打分,打分的过程具体为:

可选的,本申请的一些实施例中,根据逻辑模型索引文档打分公式及评分权重信息,对逻辑模型索引文档集合中每一个逻辑模型索引文档进行打分,得到逻辑模型查询结果,包括:

获取逻辑模型索引文档集合中每一个逻辑模型索引文档的预置模型索引查询字段对应的文档字段中关键词的出现次数;

根据评分权重信息确定逻辑模型索引文档集合中每一个逻辑模型索引文档的每个文档字段的评分权重值;

将出现次数和评分权重值代入逻辑模型索引文档打分公式

其中,d表示逻辑模型索引文档,f表示逻辑模型索引文档d的文档字段,t表示关键词,tf(tinf)=sqrt(frequency)表示关键词t在文档字段f中的出现次数frequency的平方根,weight(f)表示文档字段f的评分权重值,weight(f)*tf(tinf)表示关键词t的tf值与文档字段f的评分权重值的乘积,σfindweight(f)*tf(tinf)表示关键词在逻辑模型索引文档d中的总值,x表示逻辑模型索引文档d的使用次数字段,v(x)表示逻辑模型索引文档d的使用次数的数字值,score(tind)表示逻辑模型索引文档d的分数值;

得到逻辑模型索引文档集合中每一个逻辑模型索引文档的分数值,将逻辑模型索引文档集合及分数值作为逻辑模型查询结果。

本实施例中,查询得到逻辑模型索引文档集合之后,获取该逻辑模型索引文档集合中每一个逻辑模型索引文档的预置模型索引查询字段对应的文档字段中关键词的出现次数,由于评分权重信息是预先配置好的每个逻辑模型索引文档中每一个文档字段的评分权重值,那么根据评分权重信息确定每个逻辑模型索引文档的每个文档字段的评分权重值,从而可以得到每一个出现关键词的预置模型索引查询字段对应的文档字段的评分权重值。

预设的逻辑模型索引文档打分公式为

以上打分公式中,d表示逻辑模型索引文档,f表示逻辑模型索引文档d的文档字段,t表示关键词,tf(tinf)=sqrt(frequency)表示关键词t在文档字段f中的出现次数frequency的平方根,weight(f)表示文档字段f的评分权重值,weight(f)*tf(tinf)表示关键词t的tf值与文档字段f的评分权重值的乘积,σfindweight(f)*tf(tinf)表示关键词在逻辑模型索引文档d中的总值,x表示逻辑模型索引文档d的预置文档字段,v(x)表示逻辑模型索引文档d中的文档字段“使用次数”,“使用次数”的数据来源信息是从逻辑模型信息的“使用次数”字段得到的,表示的是该逻辑模型索引文档d对应的逻辑模型的使用频率,score(tind)表示逻辑模型索引文档d的分数值,在已知出现次数frequency、v(x)和weight(f)的值的情况下,可以计算得到逻辑模型索引文档集合中每一个逻辑模型索引文档的分数值,从而使得逻辑模型查询结果中包含逻辑模型索引文档集合以及逻辑模型索引文档集合中每一个逻辑模型索引文档的分数值,方便业务用户根据分数值可以知道最匹配本次查询的逻辑模型,由于还综合了逻辑模型的使用频率,那么业务用户根据查询结果得到的逻辑模型将更加精确。

(二)、根据关联关系查询语句确定关联关系索引文档。

可选的,本申请的一些实施例中,根据关联关系查询语句查询索引库,确定关联关系索引文档,包括:

根据关联关系查询语句中的预置关联关系索引查询字段,从索引库的所有关联关系索引文档中获取对应预置关联关系索引查询字段的文档字段的分词结构信息;

判断分词结构信息中是否包含关键词;

若包含,则根据分词结构信息确定对应键值对的至少一个文档标识,根据至少一个文档标识确定对应的至少一个关联关系索引文档,根据至少一个关联关系索引文档得到关联关系索引文档集合;

若不包含,则判断所有关联关系索引文档中对应预置关联关系索引查询字段的其他文档字段的分词结构信息是否包含关键词。

本实施例中,根据查询语句中的预置关联关系索引查询字段,预置关联关系索引查询字段即每个关联关系索引文档中的源逻辑字段和目标逻辑字段,从索引库的所有关联关系索引文档中获取对应预置关联关系索引查询字段的文档字段的分词结构信息,即源逻辑字段和目标逻辑字段的分词结构信息,从而判断分词结构信息中是否包含关键词,而由于分词结构信息与文档标识是键值对存储在索引库中的,如果包含,则根据分词结构信息确定对应键值对的文档标识,根据文档标识确定对应的关联关系索引文档,确定的文档标识至少是一个,因此确定的关联关系索引文档也至少是一个,将这些关联关系索引文档作为一个关联关系索引文档集合;如果不包含,则判断所有关联关系索引文档中源逻辑字段和目标逻辑字段的分词结构信息是否包含关键词,从而实现了遍历查询索引库中所有关联关系索引文档。

上述实施例中描述了关联关系索引文档的确定过程,在关联关系索引文档确认之后,还需要对关联关系索引文档进行打分,打分的过程具体为:

可选的,本申请的一些实施例中,根据关联关系索引文档打分公式及评分权重信息,对关联关系索引文档集合中每一个关联关系索引文档进行打分,得到关联关系查询结果,包括:

分别获取关联关系索引文档集合中每一个关联关系索引文档的预置关联关系索引查询字段对应的源模型字段和目标模型字段中关键词的出现次数;

根据评分权重信息确定源模型字段和目标模型字段的评分权重值;

将源模型字段中关键词的出现次数、目标模型字段中关键词的出现次数、源模型字段的评分权重值和目标模型字段的评分权重值代入关联关系索引文档打分公式score(tind)=weight(y1)*tf(tiny1)+weight(y2)*tf(tiny2)进行计算,其中,y1表示源模型字段,y2表示目标模型字段,weight(y1)表示源模型字段y1的评分权重值,weight(y2)表示目标模型字段y2的评分权重值,tf(tiny1)=sqrt(frequency1)表示关键词t在源模型字段y1中的出现次数frequency1的平方根,tf(tiny2)=sqrt(frequency2)表示关键词t在源模型字段y2中的出现次数frequency2的平方根,score(tind)表示关联关系索引文档d的分数值;

得到关联关系索引文档集合中每一个关联关系索引文档的分数值,将关联关系索引文档集合及分数值作为关联关系查询结果。

本实施例中,关联关系索引文档的预置关联关系索引查询字段是源模型字段和目标模型字段,获取关联关系索引文档集合中每一个关联关系索引文档的源模型字段和目标模型字段中关键词的出现次数,根据评分权重信息确定源模型字段和目标模型字段的评分权重值,将源模型字段中关键词的出现次数、目标模型字段中关键词的出现次数、源模型字段的评分权重值和目标模型字段的评分权重值代入关联关系索引文档的打分公式score(tind)=weight(y1)*tf(tiny1)+weight(y2)*tf(tiny2)进行计算,其中,y1表示源模型字段,y2表示目标模型字段,weight(y1)表示源模型字段y1的评分权重值,weight(y2)表示目标模型字段y2的评分权重值,tf(tiny1)=sqrt(frequency1)表示关键词t在源模型字段y1中的出现次数frequency1的平方根,tf(tiny2)=sqrt(frequency2)表示关键词t在源模型字段y2中的出现次数frequency2的平方根,score(tind)表示关联关系索引文档d的分数值,已知weight(y1)、weight(y2)、frequency1和frequency2的情况下,计算得到该关联关系索引文档的分数值,实现了关联关系索引文档集合中每一个关联关系索引文档的具体的打分过程,从而使得关联关系查询结果中包含关联关系索引文档集合中每一个关联关系索引文档及其分数值,方便业务用户根据关联关系索引文档的分数值可以知道最匹配本次查询的逻辑模型关联关系。

在以上所有的实施例中,逻辑模型的逻辑模型信息和逻辑模型字段信息,及逻辑模型关联关系的关联关系数据都是默认为存储在逻辑模型存储库中的,下面通过实施例对逻辑模型的创建和和关联关系数据的获取进行详细说明。

可选的,本申请的一些实施例中,创建索引文档,设置索引文档的文档标识及文档字段的配置信息之前,还包括:

获取数据仓库中的物理表;

根据物理表创建逻辑模型,并将逻辑模型保存至逻辑模型存储库中,逻辑模型包括逻辑模型信息和逻辑模型字段信息,逻辑模型信息的字段包括逻辑模型标识、物理表名、逻辑模型名、业务描述、使用次数、模型更新时间及数据更新时间,逻辑模型字段信息的字段包括物理字段名、逻辑字段名及业务描述;

通过频繁集挖掘方式获取逻辑模型关联关系的关联关系数据,并将关联关系数据保存至逻辑模型存储库中,关联关系数据包括关联关系hash值、源逻辑模型标识、目标逻辑模型标识及关联路径信息。

本实施例中,在创建索引文档之前,需要将数据仓库中的物理表建模为逻辑模型,将逻辑模型保存至逻辑模型存储库中,物理表是一系列二维数组的集合,用于代表数据仓库中存储的数据对象,逻辑模型包括逻辑模型信息和逻辑模型字段信息,逻辑模型信息的字段包括逻辑模型标识、物理表名、逻辑模型名、业务描述、使用次数、模型更新时间及数据更新时间,逻辑模型字段信息的字段包括物理字段名、逻辑字段名及业务描述,逻辑模型存储库中的存储介质一般选择关系型数据库,逻辑模型信息和逻辑模型字段信息一般采用二维表的方式如图2所示;

逻辑模型关联关系的关联关系数据是通过频繁集挖掘方式获取到的,具体过程为:

收集统计业务用户设置的历史逻辑模型关联关系或者技术人员预先设置的逻辑模型关联关系,采用一种挖掘关联规则的算法(例如apriori算法)识别出频繁集,设置频繁集的支持度和置信度。支持度表示频繁集在所有业务用户查询中出现频率,即逻辑模型关联关系在历史查询使用率。支持度设置的越高,获取的频繁集都是使用频率越高的逻辑模型关联关系,apriori算法执行时间越少,获取的逻辑模型关联关系数量也越少,初始支持度一般设置在50%以上;置信度表示频繁集中两个子集同时出现的概率,此处主要是获取历史使用过的逻辑模型关联关系,初始置信度一般设置为90%。达到初始支持度和初始置信度的要求的频繁集就是符合要求的;

再对符合要求的频繁集进行处理为:先获取包含该频繁集的所有的查询,在每个查询中,如果频繁集中的逻辑模型存在直接的逻辑模型关联关系,则按照如下的公式计算关联关系hash值,

关联关系hash值=hashcode[源物理表名+目标物理表名+(源模型字段1的物理字段名+目标模型对应物理字段名)+…+(源模型字段n的物理字段名+目标模型对应物理字段名)]

其中,hashcode是hash函数,其参数由多个字符串拼接而成,字符串前面两个是物理表名,后面是多个关联字段对;两个有关联关系的逻辑模型,其关联关系是没有方向的,通过对物理表名的第一个字母或汉字做降序排列,第一个逻辑模型记录为源模型,第二个逻辑模型记录为目标模型,将关联关系变成有向的,从而实现如果两个关联关系包含的逻辑模型是相同,相应的关联的方向也是确定的,字段对的顺序按照字段对中源模型的物理字段名降序排列确定;

将关联关系hash值和“逻辑模型存储”库中“关联关系”表所有记录中“关联关系hash值”字段对比,如果“关联关系”表中不存在“关联关系hash值”字段为当前哈希值的记录,则表面该逻辑模型关联关系未在逻辑模型存储库中有记录,那么将该关联关系数据写入到逻辑模型存储库中。

需要说明的是,如图6所示,w1至w6为不同的关键词,d1至d9为不同的逻辑模型索引文档的文档标识,(di,n)中n表示的是逻辑模型索引文档di中包含关键词的字段数据的起始位置,假设查询关键词w3,索引结构为:w3—>(d8,1),逻辑模型索引文档的文档标识为d8,关键词处于逻辑模型索引文档d8的第1个字段数据中,将字段数据提取出来,并且作为查询返回值展示给业务用户,而且根据关键词的起始位置,将关键词提示出来,具体如下表5,关键词为“月流量”,查询到的逻辑模型索引文档为“小区流量流向月表”,假设逻辑模型索引文档的文档标识的字段数据为“001”,则索引结构为:“月流量”—>(001,10),(001,31)。业务用户使用“月流量”检索的时候,以“月流量”作为关键词,查询找到逻辑模型索引文档“001”的第10个字段信息和第31个字段信息中包含“月流量”,并找到第10个字段信息和第31个字段信息的位置。那么查询返回值“month_flow,<em>月流量</em>,last_month_flow,上<em>月流量</em>”表示第一次查询匹配的字段信息的位置为10,使用<em>月流量</em>突出显示,而第二次匹配的字段信息的位置为31,“上<em>月流量</em>”中的“月流量”突出显示,突出显示的部分可以是采用红色字体、加粗或者下划线等方式。

表5

以上实施例中介绍的是本申请的即席查询的方法,下面通过实施例详细介绍即席查询的装置。

请参阅图7,本申请实施例提供一种即席查询的装置,包括:

获取模块701,用于获取业务用户输入的检索词;

查询模块702,用于根据获取模块701获取的检索词查询索引库,确定逻辑模型索引文档集合,逻辑模型索引文档集合包括至少一个逻辑模型索引文档,索引库包括至少一个逻辑模型索引文档的文档标识、文档字段的分词结构信息及评分权重信息,分词结构信息对应文档字段的字段数据的分词结构,评分权重信息对应文档字段的评分权重值,逻辑模型索引文档中至少一个文档字段的分词结构信息中包含检索词,一个逻辑模型索引文档对应一个逻辑模型的索引信息;

打分模块703,用于根据逻辑模型索引文档打分公式及评分权重信息,对查询模块702确定的逻辑模型索引文档集合中每一个逻辑模型索引文档进行打分,得到逻辑模型查询结果。

本申请实施例中,获取模块701获取业务用户输入的检索词,查询模块702根据检索词查询索引库,如果检索词出现在了某个索引文档的一个或多个文档字段的分词结构信息中,就表明该逻辑模型索引文档是符合查询要求的,遍历索引库中所有的逻辑模型索引文档,确定包括至少一个符合本次查询要求的逻辑模型索引文档的逻辑模型索引文档集合,预先设置好了逻辑模型索引文档打分公式,打分模块703根据逻辑模型索引文档打分公式和评分权重信息可以实现逻辑模型索引文档集合中每一个逻辑模型索引文档的打分,对查询到的逻辑模型索引文档集合中每一个逻辑模型索引文档进行打分后,得到的逻辑模型查询结果是具有分数值的至少一个逻辑模型索引文档,使得逻辑模型索引文档存在多个时,业务用户可以直观的看到查询结果中每个逻辑模型索引文档及其分数值,由于一个逻辑模型索引文档对应一个逻辑模型的索引信息,那么业务用户根据逻辑模型查询结果中的逻辑模型索引文档的分数值可以快速选择出需求的逻辑模型,与现有技术相比,业务用户可以按照逻辑模型查询结果快速的选择逻辑模型,减少了业务用户识别和选择逻辑模型的工作量和耗时,提高了即席查询的效率。

可选的,如图8所示,本申请的一些实施例中,装置还包括:

索引创建模块801,用于创建索引文档,设置索引文档的文档标识及文档字段的配置信息,索引文档包括逻辑模型索引文档和关联关系索引文档,逻辑模型索引文档对应一个逻辑模型的索引信息,关联关系索引文档对应一个逻辑模型关联关系的索引信息,配置信息包括数据来源信息、分词处理信息及评分权重信息,数据来源信息对应逻辑模型的逻辑模型信息和逻辑模型字段信息,或数据来源信息对应逻辑模型关联关系的关联关系数据,评分权重信息表示对应文档字段的评分权重值;

索引创建模块801,还用于根据数据来源信息从逻辑模型存储库中获取索引文档中文档字段的字段数据;

索引创建模块801,还用于根据分词处理信息判断是否对字段数据进行文本分词处理;

索引创建模块801,还用于当判断需要对字段数据进行文本分词处理时,对字段数据进行文本分词处理,得到分词结构信息,将分词结构信息与文档标识键值对存储至索引库中;

索引创建模块801,还用于当判断不需要对字段数据进行文本分词处理时,将字段数据存储至索引库中。

本申请实施例中,在获取业务用户输入的检索词进行即席查询之前,需要索引创建模块801在索引库中先创建索引文档,设置索引文档的文档标识及文档字段的配置信息,索引文档包括逻辑模型索引文档和关联关系索引文档,逻辑模型索引文档对应一个逻辑模型的索引信息,关联关系索引文档对应一个逻辑模型关联关系的索引信息,文档字段的配置信息包括数据来源信息、分词处理信息及评分权重信息,数据来源信息对应逻辑模型的逻辑模型信息和逻辑模型字段信息,或者数据来源信息对应逻辑模型关联关系的关联关系数据,评分权重信息表示对应文档字段的评分权重值,评分权重值的具体数值是按照文档字段的重要程度所预先设置的,如果索引文档的文档字段的数据来源信息对应的是逻辑模型的逻辑模型信息和逻辑模型字段信息,则索引文档为逻辑模型索引文档;如果索引文档的文档字段的数据来源信息对应的是逻辑模型关联关系的关联关系数据,则索引文档为关联关系索引文档。而逻辑模型的逻辑模型信息和逻辑模型字段信息以及逻辑模型关联关系的关联关系数据是存储在逻辑模型存储库中的,那么索引创建模块801根据数据来源信息可以从逻辑模型存储库中获取索引文档中文档字段的字段数据,再根据文档字段的分词处理信息判断是否对字段数据进行文本分词处理,如果是,则索引创建模块801使用分词器对字段数据进行文本分词处理,得到分词结构信息,并将分词结构信息与文档标识构造为键值对,以键值对存储的方式将分词结构信息与文档标识保存到索引库中,如果不需要对字段数据进行分词处理,则索引创建模块801将字段数据存储至索引库中。使得业务用户选择了索引文档后,能够根据索引文档索引到对应到逻辑模型或逻辑模型关联关系。

可选的,如图9所示,本申请的一些实施例中,查询模块702包括:

分词单元901,用于对检索词进行分词处理,得到关键词;

查询语句单元902,用于根据预置查询语句规则和关键词生成逻辑模型查询语句,逻辑模型查询语句包括预置模型索引查询字段,逻辑模型查询语句用于查询逻辑模型索引文档,预置模型索引查询字段为逻辑模型索引文档的文档字段;

查询单元903,用于根据逻辑模型查询语句查询索引库,确定逻辑模型索引文档集合,逻辑模型索引文档集合包括至少一个逻辑模型索引文档。

本实施例中,在获取到业务用户输入的检索词之后,考虑到业务用户输入的检索词可能为口语化或不规范的词,如此的话,按照此检索词来查询索引库,是无法查询到逻辑模型索引文档的,因为逻辑模型索引文档的部分文档字段的分词结构信息都是分词器按照分词要求对字段数据进行分词处理的,所以获取到检索词之后,分词单元901通过分词器对检索词进行分词处理,分词处理得到的关键词可能为一个或者多个,查询语句单元902再根据预置查询语句规则和关键词生成逻辑模型查询语句,预置查询语句规则是一套预设的查询语句生成规则,查询语句单元902生成逻辑模型查询语句时,预置了需要查询的模型索引查询字段,预置模型索引查询字段为逻辑模型索引文档的文档字段,这样就能实现根据逻辑模型查询语句查询索引库,从而查询单元903确定符合逻辑模型查询语句的逻辑模型索引文档时,对查询的范围进行限定,而不是对每个逻辑模型索引文档的所有文档字段都进行遍历查询,可以进一步节省查询时间,并且通过预置查询语句规则和关键词生成逻辑模型查询语句,从而查询索引库确定包括至少一个逻辑模型索引文档的逻辑模型索引文档集合,使得查询服务可以自动完成。

可选的,如图9所示,本申请的一些实施例中,当关键词的数量大于一个且多个关键词之间为和的关系时,

查询语句单元902,还用于根据预置查询语句规则和关键词生成关联关系查询语句,关联关系查询语句包括预置关联关系索引查询字段,关联关系查询语句用于查询关联关系索引文档,预置关联关系索引查询字段对应关联关系索引文档的源模型字段和目标模型字段;

查询单元903,还用于根据关联关系查询语句查询索引库,确定关联关系索引文档集合,关联关系索引文档集合包括至少一个关联关系索引文档;

打分模块703,还用于根据关联关系索引文档打分公式及评分权重信息,对关联关系索引文档集合中每一个关联关系索引文档进行打分,得到关联关系查询结果。

本申请实施例中,由于在对检索词进行分词时,关键词可能是一个,也可能是多个,而关键词为多个时,关键词之间的关系可以为或,也可以为和。多个关键词之间的关系为或时,查询得到的多个逻辑模型索引文档之间不存在关联关系;多个关键词之间的关系为和时,查询得到至少一个逻辑模型索引文档,而且多个逻辑模型索引文档之间可能存在关联关系索引文档对应的逻辑模型关联关系,因此,还需要查询索引库中的关联关系索引文档。因此,当关键词的数量大于一个且多个关键词之间为和的关系时,查询语句单元902根据预置查询语句规则和关键词生成关联关系查询语句,关联关系查询语句包括预置关联关系索引查询字段,预置关联关系索引查询字段对应关联关系索引文档的源模型字段和目标模型字段,查询单元903再根据关联关系查询语句查询索引库,确定的关联关系索引文档集合中包括符合查询要求的至少一个关联关系索引文档,打分模块703根据关联关系索引文档打分公式及评分权重信息,对关联关系索引文档集合中每一个关联关系索引文档进行打分,得到关联关系查询结果,由于关联关系索引文档对应一个逻辑模型关联关系的索引信息,那么业务用户通过关联关系查询结果中的关联关系索引文档集合以及关联关系索引文档集合中每一个关联关系索引文档的分数值,可以选择出关联关系索引文档,由关联关系索引文档索引得到对应的逻辑模型关联关系,在现有技术中,当业务用户的查询结果输出列中的逻辑字段来自多个不同的逻辑模型的时候,业务用户手动建立多个不同的逻辑模型之中两两逻辑模型之间的关联关系,从而将多个逻辑模型对应的物理表组合起来,因此,本方案无须业务用户手动设置逻辑模型关联关系,从而进一步的提高了即席查询的效率。

可选的,如图9所示,本申请的一些实施例中,

查询单元903,还用于根据逻辑模型查询语句中的预置模型索引查询字段,从索引库的所有逻辑模型索引文档中获取对应预置模型索引查询字段的文档字段的分词结构信息;

查询单元903,还用于根据分词结构信息判断对应的文档字段是否包含关键词;

查询单元903,还用于当分词结构信息对应的文档字段包含关键词时,根据分词结构信息确定对应键值对的至少一个文档标识,根据至少一个文档标识确定对应的至少一个逻辑模型索引文档,根据至少一个逻辑模型索引文档得到逻辑模型索引文档集合;

查询单元903,还用于当分词结构信息对应的文档字段不包含关键词时,判断所有逻辑模型索引文档中对应预置模型索引查询字段的其他文档字段的分词结构信息是否包含关键词。

本实施例中,查询语句单元902在生成逻辑模型查询语句后,查询单元903根据逻辑模型查询语句中的预置模型索引查询字段,预置模型索引查询字段即每个逻辑模型索引文档中的特定的文档字段,查询单元903从索引库的所有逻辑模型索引文档中获取对应预置模型索引查询字段的文档字段的分词结构信息,由于分词结构信息是一个文档字段的字段数据的分词结构或者就是字段数据,那么分词结构信息中是否包含关键词是可以查询到的,从而根据分词结构信息可以判断对应的文档字段是否包含关键词,而由于分词结构信息与文档标识是键值对存储在索引库中的,如果包含,则查询单元903根据分词结构信息确定对应键值对的至少一个文档标识,根据至少一个文档标识确定对应的至少一个逻辑模型索引文档,将这些逻辑模型索引文档作为一个逻辑模型索引文档集合;如果不包含,则查询单元903判断所有逻辑模型索引文档中对应预置查询字段的其他文档字段的分词结构信息是否包含关键词,从而实现了遍历查询索引库中所有逻辑模型索引文档。

可选的,如图9所示,本申请的一些实施例中,

打分模块703,还用于获取逻辑模型索引文档集合中每一个逻辑模型索引文档的预置模型索引查询字段对应的文档字段中关键词的出现次数;

打分模块703,还用于根据评分权重信息确定逻辑模型索引文档集合中每一个逻辑模型索引文档的每个文档字段的评分权重值;

打分模块703,还用于将出现次数和评分权重值代入逻辑模型索引文档打分公式

其中,d表示逻辑模型索引文档,f表示逻辑模型索引文档d的文档字段,t表示关键词,tf(tinf)=sqrt(frequency)表示关键词t在文档字段f中的出现次数frequency的平方根,weight(f)表示文档字段f的评分权重值,weight(f)*tf(tinf)表示关键词t的tf值与文档字段f的评分权重值的乘积,σfindweight(f)*tf(tinf)表示关键词在逻辑模型索引文档d中的总值,x表示逻辑模型索引文档d的使用次数字段,v(x)表示逻辑模型索引文档d的使用次数的数字值,score(tind)表示逻辑模型索引文档d的分数值;

打分模块703,还用于得到逻辑模型索引文档集合中每一个逻辑模型索引文档的分数值,将逻辑模型索引文档集合及分数值作为查询结果。

本申请实施例中,查询单元903查询得到逻辑模型索引文档集合之后,打分模块703获取该逻辑模型索引文档集合中每一个逻辑模型索引文档的预置模型索引查询字段对应的文档字段中关键词的出现次数,由于评分权重信息是预先配置好逻辑模型索引文档中每一个文档字段的评分权重值,那么根据评分权重信息确定逻辑模型索引文档集合中每一个逻辑模型索引文档的每个文档字段的评分权重值,从而可以得到每一个预置模型索引查询字段对应的文档字段中出现关键词的文档字段的评分权重值。

预设的逻辑模型索引文档对应的打分公式为

以上打分公式中,d表示逻辑模型索引文档,f表示逻辑模型索引文档d的文档字段,t表示关键词,tf(tinf)=sqrt(frequency)表示关键词t在文档字段f中的出现次数frequency的平方根,weight(f)表示文档字段f的评分权重值,weight(f)*tf(tinf)表示关键词t的tf值与文档字段f的评分权重值的乘积,σfindweight(f)*tf(tinf)表示关键词在逻辑模型索引文档d中的总值,x表示逻辑模型索引文档d的预置文档字段,v(x)表示逻辑模型索引文档d中的文档字段“使用次数”,“使用次数”的数据来源信息是从逻辑模型信息的“使用次数”字段得到的,表示的是该逻辑模型索引文档d对应的逻辑模型的使用频率,score(tind)表示逻辑模型索引文档d的分数值,在已知出现次数frequency、v(x)和weight(f)的值的情况下,打分模块703得到每一个逻辑模型索引文档的分数值,从而可以实现逻辑模型索引文档集合中每一个逻辑模型索引文档的具体的打分过程,从而使得逻辑模型查询结果中包含逻辑模型索引文档集合以及逻辑模型索引文档集合中每个逻辑模型索引文档的分数值,方便业务用户根据逻辑模型索引文档的分数值可以知道最匹配本次查询的逻辑模型,由于还综合了逻辑模型的使用频率,那么业务用户根据查询结果得到的逻辑模型将更加精确。

可选的,如图9所示,本申请的一些实施例中,查询语句为关联关系查询语句,

查询单元903,还用于根据关联关系查询语句中的预置关联关系索引查询字段,从索引库的所有关联关系索引文档中获取对应预置关联关系索引查询字段的文档字段的分词结构信息;

查询单元903,还用于判断分词结构信息中是否包含关键词;

查询单元903,还用于当分词结构信息对应的文档字段包含关键词时,根据分词结构信息确定对应键值对的至少一个文档标识,根据至少一个文档标识确定对应的关联关系索引文档,根据至少一个关联关系索引文档得到关联关系索引文档集合;

查询单元903,还用于当分词结构信息对应的文档字段不包含关键词时,判断所有关联关系索引文档中对应预置关联关系索引查询字段的其他文档字段的分词结构信息是否包含关键词。

本申请实施例中,在查询语句单元902生成关联关系查询语句后,查询单元903根据关联关系查询语句中的预置关联关系索引查询字段,预置关联关系索引查询字段即每个关联关系索引文档中的源逻辑字段和目标逻辑字段,从索引库的所有关联关系索引文档中获取对应预置关联关系索引查询字段的文档字段的分词结构信息,即源逻辑字段和目标逻辑字段的分词结构信息,从而查询单元903根据分词结构信息可以判断对应的文档字段是否包含关键词,而由于分词结构信息与文档标识是键值对存储在索引库中的,如果包含,则查询单元903根据分词结构信息确定对应键值对的至少一个文档标识,根据至少一个文档标识确定对应的至少一个关联关系索引文档,将这些关联关系索引文档作为一个关联关系索引文档集合;如果不包含,则查询单元903判断所有关联关系索引文档中对应预置关联关系索引查询字段的其他文档字段的分词结构信息是否包含关键词,从而实现了遍历查询索引库中所有关联关系索引文档。

可选的,如图9所示,本申请的一些实施例中,

打分模块703,还用于分别获取关联关系索引文档集合中每一个关联关系索引文档的预置关联关系索引查询字段对应的源模型字段和目标模型字段中关键词的出现次数;

打分模块703,还用于根据评分权重信息确定源模型字段和目标模型字段的评分权重值;

打分模块703,还用于将源模型字段中关键词的出现次数、目标模型字段中关键词的出现次数、源模型字段的评分权重值和目标模型字段的评分权重值代入关联关系索引文档打分公式score(tind)=weight(y1)*tf(tiny1)+weight(y2)*tf(tiny2)进行计算,其中,y1表示源模型字段,y2表示目标模型字段,weight(y1)表示源模型字段y1的评分权重值,weight(y2)表示目标模型字段y2的评分权重值,tf(tiny1)=sqrt(frequency1)表示关键词t在源模型字段y1中的出现次数frequency1的平方根,tf(tiny2)=sqrt(frequency2)表示关键词t在源模型字段y2中的出现次数frequency2的平方根,score(tind)表示关联关系索引文档d的分数值;

打分模块703,还用于得到关联关系索引文档集合中每一个关联关系索引文档的分数值,将关联关系索引文档集合及分数值作为查询结果。

本申请实施例中,查询单元903得到关联关系索引文档之后,关联关系查询语句中的预置关联关系索引查询字段对应的是关联关系索引文档集合中每一个关联关系索引文档中的源模型字段和目标模型字段,因此,打分模块703获取关联关系索引文档集合中每一个关联关系索引文档的源模型字段和目标模型字段中关键词的出现次数,根据评分权重信息确定源模型字段和目标模型字段的评分权重值,将源模型字段中关键词的出现次数、目标模型字段中关键词的出现次数、源模型字段的评分权重值和目标模型字段的评分权重值代入关联关系索引文档的打分公式score(tind)=weight(y1)*tf(tiny1)+weight(y2)*tf(tiny2)进行计算,其中,y1表示源模型字段,y2表示目标模型字段,weight(y1)表示源模型字段y1的评分权重值,weight(y2)表示目标模型字段y2的评分权重值,tf(tiny1)=sqrt(frequency1)表示关键词t在源模型字段y1中的出现次数frequency1的平方根,tf(tiny2)=sqrt(frequency2)表示关键词t在源模型字段y2中的出现次数frequency2的平方根,score(tind)表示关联关系索引文档d的分数值,已知weight(y1)、weight(y2)、frequency1和frequency2的情况下,打分模块703得到关联关系索引文档集合中每一个关联关系索引文档的分数值,实现了关联关系索引文档的具体的打分过程,从而使得关联关系查询结果中包含关联关系索引文档集合以及关联关系索引文档集合中每一个关联关系索引文档的分数值,方便业务用户根据关联关系索引文档的分数值可以知道最匹配本次查询的逻辑模型关联关系。

可选的,如图10所示,本申请的一些实施例中,装置还包括:

存储库创建模块1001,用于获取数据仓库中的物理表;

存储库创建模块1001,还用于根据物理表创建逻辑模型,并将逻辑模型保存至逻辑模型存储库中,逻辑模型包括逻辑模型信息和逻辑模型字段信息,逻辑模型信息的字段包括逻辑模型标识、物理表名、逻辑模型名、业务描述、使用次数、模型更新时间及数据更新时间,逻辑模型字段信息的字段包括物理字段名、逻辑字段名及业务描述;

存储库创建模块1001,还用于通过频繁集挖掘方式获取逻辑模型关联关系的关联关系数据,并将关联关系数据保存至逻辑模型存储库中,关联关系数据包括关联关系hash值、源逻辑模型标识、目标逻辑模型标识及关联路径信息。

本实施例中,在索引创建模块801创建索引文档之前,存储库创建模块1001需要将数据仓库中的物理表建模为逻辑模型,将逻辑模型保存至逻辑模型存储库中,物理表是一系列二维数组的集合,用于代表数据仓库中存储的数据对象,逻辑模型包括逻辑模型信息和逻辑模型字段信息,逻辑模型信息的字段包括逻辑模型标识、物理表名、逻辑模型名、业务描述、使用次数、模型更新时间及数据更新时间,逻辑模型字段信息的字段包括物理字段名、逻辑字段名及业务描述,逻辑模型存储库中的存储介质一般选择关系型数据库,逻辑模型信息和逻辑模型字段信息一般采用二维表的方式;存储库创建模块收集统计业务用户设置的历史逻辑模型关联关系或者技术人员预先设置的逻辑模型关联关系,通过频繁集挖掘方式获取逻辑模型关联关系的关联关系数据,并将关联关系数据保存至逻辑模型存储库中,关联关系数据包括关联关系hash值、源逻辑模型标识、目标逻辑模型标识及关联路径信息。在逻辑模型信息的字段中增加了使用次数、模型更新时间及数据更新时间这三个字段,可以记录逻辑模型的使用频率和更新状况,使得业务用户查询到的逻辑模型更精确,而逻辑模型关联关系的关联关系数据可以有效的避免业务用户重复设置以前设置过的逻辑模型关联关系。

需要说明的是,逻辑模型关联关系的关联关系数据是通过频繁集挖掘方式获取到的,先挖掘得到频繁集,再对符合要求的频繁集进行处理,如果频繁集中的逻辑模型存在直接的逻辑模型关联关系,则按照如下的公式计算关联关系hash值,

关联关系hash值=hashcode[源物理表名+目标物理表名+(源模型字段1的物理字段名+目标模型对应物理字段名)+…+(源模型字段n的物理字段名+目标模型对应物理字段名)]

其中,hashcode是hash函数,其参数由多个字符串拼接而成,字符串前面两个是物理表名,后面是多个关联字段对;两个有关联关系的逻辑模型,其关联关系是没有方向的,通过对物理表名的第一个字母或汉字做降序排列,第一个逻辑模型记录为源模型,第二个逻辑模型记录为目标模型,将关联关系变成有向的,从而实现如果两个关联关系包含的逻辑模型是相同,相应的关联的方向也是确定的,字段对的顺序按照字段对中源模型的物理字段名降序排列确定;

将关联关系hash值和“逻辑模型存储”库中“关联关系”表所有记录中“关联关系hash值”字段对比,如果“关联关系”表中不存在“关联关系hash值”字段为当前哈希值的记录,则表面该逻辑模型关联关系未在逻辑模型存储库中有记录,那么将该关联关系数据写入到逻辑模型存储库中。

需要说明的是,即席查询的装置还可以包括显示模块,在显示模块中显示的查询返回值具体可以是“month_flow,<em>月流量</em>,last_month_flow,上<em>月流量</em>”,其中,<em>月流量</em>表示突出显示,“上<em>月流量</em>”中的“月流量”突出显示,突出显示的部分可以是采用红色字体、加粗或者下划线等方式。

本申请还提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行以上实施例所描述的即席查询的方法。

本申请还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行以上实施例所描述的即席查询的方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。

所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1