一种检索方法和装置与流程

文档序号:13207856阅读:154来源:国知局
一种检索方法和装置与流程

本发明涉及计算机技术领域,特别涉及一种检索方法和装置。



背景技术:

随着信息技术的发展,数据库中存储的数据量越来越庞大,如何更快地从海量数据中检索出需要的数据,是技术人员一直关心的问题。

现有技术中,一般通过全文检索的方式对数据库进行检索,即将数据库中的每一条数据记录与检索条件进行匹配,筛选出满足检索条件的检索结果。

但是,该方法检索速度较慢。



技术实现要素:

本发明实施例提供了一种检索方法和装置,能够提高检索速度。

第一方面,本发明实施例提供了一种检索方法,创建索引库,还包括:

获取用户确定的全文检索条件和分组检索条件;

根据所述全文检索条件对所述索引库进行全文检索,生成初步检索结果;

根据所述分组检索条件对所述初步检索结果进行过滤,生成最终检索结果。

优选地,

所述分组检索条件,包括:分组字段、统计函数和过滤条件;

所述根据所述分组检索条件对所述初步检索结果进行筛选,生成最终检索结果,包括:

根据所述分组检索条件中的分组字段和统计函数,对所述初步检索结果进行分组统计,生成分组统计结果;

利用所述分组检索条件中的过滤条件对所述分组统计结果进行筛选,生成最终检索结果。

优选地,

所述统计函数,包括:sum函数、count函数、avg函数、max函数和min函数中任意一种或多种。

优选地,

所述创建索引库,包括:

获取索引服务器;

确定待检索数据;

将所述待检索数据导入所述索引服务器,生成所述索引库。

第二方面,本发明实施例提供了一种检索装置,包括:

创建单元,用于创建索引库;

获取单元,用于获取用户确定的全文检索条件和分组检索条件;

检索单元,用于根据所述获取单元获取的所述全文检索条件对所述创建单元创建的所述索引库进行全文检索,生成初步检索结果;

过滤单元,用于根据所述获取单元获取的所述分组检索条件对所述检索单元生成的所述初步检索结果进行过滤,生成最终检索结果。

优选地,

所述分组检索条件,包括:分组字段、统计函数和过滤条件;

所述检索单元,用于根据所述分组检索条件中的分组字段和统计函数,对所述初步检索结果进行分组统计,生成分组统计结果;利用所述分组检索条件中的过滤条件对所述分组统计结果进行筛选,生成最终检索结果。

优选地,

所述统计函数,包括:sum函数、count函数、avg函数、max函数和min函数中任意一种或多种。

优选地,

所述创建单元,用于获取索引服务器;确定待检索数据;将所述待检索数据导入所述索引服务器,生成所述索引库。

第三方面,本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行上述任一实施例所述的方法。

第四方面,本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;

所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行上述任一实施例所述的方法。

本发明实施例提供了一种检索方法和装置,其中,该方法利用全文检索条件对索引库进行全文检索,并利用分组检索条件对全文检索得到的初步检索结果进行过滤,得到用户需要的最终检索结果。与现有技术完全依靠全文检索得到最终检索结果相比,本发明能够利用分组检索对初步检索结果进行过滤,提高检索速度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一个实施例提供的一种检索方法的流程图;

图2是本发明另一个实施例提供的一种检索方法的流程图;

图3是本发明一个实施例提供的一种检索装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供了一种检索方法,该方法可以包括以下步骤:

步骤101:创建索引库;

步骤102:获取用户确定的全文检索条件和分组检索条件;

步骤103:根据全文检索条件对索引库进行全文检索,生成初步检索结果;

步骤104:根据分组检索条件对初步检索结果进行过滤,生成最终检索结果。

该方法利用全文检索条件对索引库进行全文检索,并利用分组检索条件对全文检索得到的初步检索结果进行过滤,得到用户需要的最终检索结果。与现有技术完全依靠全文检索得到最终检索结果相比,本发明能够利用分组检索对初步检索结果进行过滤,提高检索速度。

在本发明的一个实施例中,为了对初步检索结果进行过滤,分组检索条件,包括:分组字段、统计函数和过滤条件;

根据分组检索条件对初步检索结果进行筛选,生成最终检索结果,包括:

根据分组检索条件中的分组字段和统计函数,对初步检索结果进行分组统计,生成分组统计结果;

利用分组检索条件中的过滤条件对分组统计结果进行筛选,生成最终检索结果。

其中,分组字段为待处理字段,例如,分组字段为人种,则分组字段中的数据可以被分成三组,白种人、黄种人和黑种人。

统计函数用于对分组后的各组数据进行统计,例如,统计得到白种人、黄种人和黑种人的数量分别为10人、5人和15人。

过滤条件用于对分组后的数据进行筛选,例如,按照职位分组,并统计各职位月平均工资为:职位a、月平均工资1200元,职位b、月平均工资1100元,职位c、月平均工资900元,为了筛选出月平均工资大于1000元的职位,可以设置过滤条件为月平均工资大于1000元。

在本发明的一个实施例中,为了满足用户的不同需求,丰富统计方式,统计函数,包括:sum函数、count函数、avg函数、max函数和min函数中任意一种或多种。

以下通过几个实例进一步说明各个统计函数的作用:

例1:统计公司每个月支出的工资总和;

selectsum(sal)fromemp。

例2:统计公司的最高工资,最低工资和平均工资;

selectmax(sal),min(sal),round(avg(sal),2)fromemp。

例3:统计公司最早雇佣和最晚雇佣的雇佣日期;

selectmin(hiredate)最早雇佣日期,max(hiredate)最晚雇佣日期fromemp。

分组统计可以概括为两种情况:

情况1:单字段分组统计

例4:统计每个部门的人数;

selectcount(empno)

fromemp

groupbydeptno。

例5:统计每种职位的最低、最高工资;

selectjob,min(sal)最低工资,max(sal)最高工资

fromemp

groupbyjob。

例6:统计公司各个工资等级雇员的数量、平均工资;

selects.grade,count(e.empno),round(avg(e.sal),2)

fromempe,salgrades

wheree.salbetweens.losalands.hisal

groupbys.grade。

情况2:多字段分组统计

例7:统计每个部门的详细信息,部门编号,部门名称,部门位置,部门人数,平均工资,总工资,最高工资,最低工资

selectd.deptno,d.dname,d.loc,count(e.empno),avg(e.sal),sum(sal),max(sal),min(sal)

fromdeptd,empe

whered.deptno=e.deptno(+)

groupbyd.deptno,d.dname,d.loc。

使用groupby子句可以实现数据的分组显示,但是在很多时候往往需要对分组之后的数据进行过滤,而要想实现这样的功能就只能通过having子句完成。

例8:统计所有平均工资大于2000的职位信息、平均工资、雇员人数

selecte.job,avg(e.sal),count(e.empno)

fromempe

groupbye.job

havingavg(e.sal)>2000。

例9:统计至少有一个员工的所有部门编号、名称,并统计出这些部门的平均工资、最低工资、最高工资

selectd.deptno,d.dname,avg(e.sal)avgsal,min(e.sal),max(e.sal),count(e.empno)人数

fromempe,deptd

wheree.deptno(+)=d.deptno

groupbyd.deptno,d.dname

havingcount(e.empno)>0。

例10:统计非销售人员工作名称以及从事同一工作雇员的月工资的总和,并且要满足从事同一工作的雇员的月工资合计大于$5000,输出结果按月工资的合计升序排列

selecte.job,sum(e.sal)sumsal

fromempe

wheree.job<>'salesman'

groupbye.job

havingsum(e.sal)>5000

orderbysumsalasc。

在本发明的一个实施例中,为了提高检索效率,创建索引库,包括:获取索引服务器;确定待检索数据;将待检索数据导入索引服务器,生成索引库。

如图2所示,本发明实施例以对单字段进行分组统计为例,对检索方法进行详细地说明,该方法包括:

步骤201:获取索引服务器。

索引服务器可以从一组文档中提取并组织信息,以便通过windows搜索功能、索引服务查询表或web浏览器快速容易地访问该信息,该信息可以包含文档中的文本(内容)、文档的特征和参数(属性)。

步骤202:确定待检索数据。

在本实施例中,待检索数据为10个公司的业务数据。

步骤203:将待检索数据导入索引服务器,生成索引库。

在用户搜索的时候,只需要到相应的索引库里面搜索相应的信息,而不是从所有的页面当中。

步骤204:获取用户确定的全文检索条件和分组检索条件,分组检索条件,包括:分组字段、统计函数和过滤条件。

例如,用户在10个公司的业务数据中查询s公司的业务数据,则全文检索条件可以为s公司名称。

分组字段为职位,统计函数包括avg函数,过滤条件为月平均工资大于1000元。

步骤205:根据全文检索条件对索引库进行全文检索,生成初步检索结果。

利用s公司名称在索引库进行全文检索,得到s公司的业务数据为初步检索结果。

步骤206:根据分组检索条件中的分组字段和统计函数,对初步检索结果进行分组统计,生成分组统计结果。

具体过程可以通过如下函数实现:

selecte.job,avg(e.sal)

fromempe

groupbye.job。

步骤207:利用分组检索条件中的过滤条件对分组统计结果进行筛选,生成最终检索结果。

具体过程可以通过如下函数实现:

havingavg(e.sal)>1000。

最终统计得到s公司中平均工资大于1000的职位。

如图3所示,本发明实施例提供了一种检索装置,包括:

创建单元301,用于创建索引库;

获取单元302,用于获取用户确定的全文检索条件和分组检索条件;

检索单元303,用于根据获取单元302获取的全文检索条件对创建单元301创建的索引库进行全文检索,生成初步检索结果;

过滤单元304,用于根据获取单元302获取的分组检索条件对检索单元303生成的初步检索结果进行过滤,生成最终检索结果。

在本发明的一个实施例中,分组检索条件,包括:分组字段、统计函数和过滤条件;

检索单元303,用于根据分组检索条件中的分组字段和统计函数,对初步检索结果进行分组统计,生成分组统计结果;利用分组检索条件中的过滤条件对分组统计结果进行筛选,生成最终检索结果。

在本发明的一个实施例中,统计函数,包括:sum函数、count函数、avg函数、max函数和min函数中任意一种或多种。

在本发明的一个实施例中,创建单元301,用于获取索引服务器;确定待检索数据;将待检索数据导入索引服务器,生成索引库。

本发明提供了一种可读介质,包括执行指令,当存储控制器的处理器执行执行指令时,存储控制器执行上述任一实施例的方法。

本发明提供了一种存储控制器,包括:处理器、存储器和总线;

存储器用于存储执行指令,处理器与存储器通过总线连接,当存储控制器运行时,处理器执行存储器存储的执行指令,以使存储控制器执行上述任一实施例的方法。

上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

综上,本发明各个实施例至少具有如下效果:

1、在本发明实施例中,该方法利用全文检索条件对索引库进行全文检索,并利用分组检索条件对全文检索得到的初步检索结果进行过滤,得到用户需要的最终检索结果。与现有技术完全依靠全文检索得到最终检索结果相比,本发明能够利用分组检索对初步检索结果进行过滤,提高检索速度。

2、在本发明实施例中,可以采用多种统计函数对分组后的数据进行统计,以满足不同用户的需求,统计函数可以包括sum函数、count函数、avg函数、max函数和min函数中任意一种或多种。

需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃····〃”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质中。

最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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