数据搜索方法、装置、设备、存储介质和程序产品与流程

文档序号:29415841发布日期:2022-03-26 13:04阅读:94来源:国知局
数据搜索方法、装置、设备、存储介质和程序产品与流程

1.本发明涉及计算机技术领域,尤其涉及一种数据搜索方法、装置、设备、存储介质和程序产品。


背景技术:

2.随着移动办公需求的爆发式增加,作为移动办公领域最重要的软件之一,即时通讯软件迅速在各个企事业单位被广泛使用。为了能快速找到目标人员,用户通常会采用数据搜索功能。为了满足各个企业客户对数据访问控制的需求,数据搜索结果需要与相应的访问规则相匹配,从而可以有效防止企业的机密数据轻易泄露。
3.现有技术中,一般先将关键字作为搜索条件搜索相应的人员,然后将搜索结果逐个与预定义的多条访问规则进行后置匹配,不满足访问规则的搜索结果将被丢弃,满足访问规则匹配的搜索结果则添加到最终的结果集中。
4.如果按照关键字作为搜索条件搜索得到的结果数量比较大,则搜索结果与预定义的访问规则进行逐一匹配过程中将消耗大量的时间,搜索效率较低。因此,如何提高数据搜索效率是本领域技术人员亟需解决的技术问题。


技术实现要素:

5.针对现有技术中的问题,本发明实施例提供一种数据搜索方法、装置、设备、存储介质和程序产品。
6.具体地,本发明实施例提供了以下技术方案:
7.第一方面,本发明实施例提供了一种数据搜索方法,包括:
8.获取至少一个第一访问规则;
9.根据各个所述第一访问规则的第一权重、各个所述第一访问规则以及用户输入的关键字,生成搜索条件;
10.根据所述搜索条件,在预设数据库中获取搜索结果。
11.进一步地,所述根据所述至少一个第一访问规则的第一权重、所述至少一个第一访问规则以及用户输入的关键字,生成搜索条件,包括:
12.对各个所述第一访问规则按照第一权重进行降序排列,得到降序排列的各个所述第一访问规则;所述第一权重用于表示所述第一访问规则的优先级;所述用户访问的数据粒度越细,所述第一权重越大;
13.根据降序排列的各个所述第一访问规则以及用户输入的关键字,生成搜索条件。
14.进一步地,所述预设数据库为通讯录数据库,所述数据库中包括多个联系人信息,所述根据所述搜索条件,在预设数据库中获取搜索结果,包括:
15.对于所述数据库中的任一个所述联系人信息,确定所述联系人信息是否满足所述搜索条件;
16.若是,则确定所述联系人信息为所述搜索结果。
17.进一步地,所述联系人信息包括联系人名字,所述关键字为联系人名字中的至少一部分;所述确定所述联系人信息是否满足所述搜索条件,包括:
18.按照所述搜索条件中各个所述第一访问规则降序排列的顺序,依次确定所述联系人信息是否满足各个所述第一访问规则,并确定所述关键字是否与所述联系人名字匹配;
19.若所述联系人信息均满足各个所述第一访问规则,且所述关键字与所述联系人名字匹配,则确定所述联系人信息满足所述搜索条件。
20.进一步地,所述按照所述搜索条件中各个所述第一访问规则降序排列的顺序,依次确定所述联系人信息是否满足各个所述第一访问规则,包括:
21.若所述联系人信息不满足排列在前的第一访问规则,则确定不满足所述搜索条件;
22.若所述联系人信息满足排列在前的第一访问规则,则确定是否满足排列在后的第一访问规则。
23.进一步地,所述获取至少一个第一访问规则之前,还包括:
24.获取预设的至少两个第二访问规则及所述第二访问规则对应的第二权重,所述第二权重用于表示所述第二访问规则的优先级;
25.按照第二权重对所述至少两个第二访问规则进行分组,得到至少一个分组;
26.对各个所述分组中的第二访问规则进行合并处理,以及按照预设的冲突规则进行处理,得到处理后的各个所述分组;
27.所述获取至少一个第一访问规则,包括:
28.从处理后的各个所述分组中获取所述至少一个第一访问规则。
29.进一步地,所述方法应用于电子设备,所述电子设备包括客户端、搜索服务组件、规则服务组件和数据库,所述方法还包括:
30.所述客户端获取用户输入的关键字;
31.所述客户端向搜索服务组件发送搜索请求,所述搜索请求包括所述关键字;
32.所述获取至少一个第一访问规则,包括:
33.所述搜索服务组件根据所述搜索请求,获取所述至少一个第一访问规则;
34.所述根据各个所述第一访问规则的第一权重、各个所述第一访问规则以及用户输入的关键字,生成搜索条件,包括:
35.所述搜索服务组件根据各个所述第一访问规则的第一权重、各个所述第一访问规则以及用户输入的关键字,生成所述搜索条件;
36.所述根据所述搜索条件,在预设数据库中获取搜索结果,包括:
37.所述搜索服务组件根据所述搜索条件,从所述数据库中获取搜索结果;
38.所述方法还包括:
39.所述客户端向所述用户展示所述搜索结果。
40.进一步地,所述电子设备还包括:规则服务组件,所述搜索服务组件根据所述搜索请求,获取所述至少一个第一访问规则,包括:
41.所述搜索服务组件根据所述搜索请求,确定是否已存储所述至少一个第一访问规则;
42.若未存储所述至少一个第一访问规则,则所述搜索服务组件向所述规则服务组件
发送所述规则下载请求;
43.所述规则服务组件获取所述至少一个第一访问规则,并将所述至少一个第一访问规则发送给所述搜索服务组件。
44.进一步地,若所述搜索结果超过预设数量时,所述客户端向所述用户展示所述搜索结果,包括:
45.所述客户端向所述用户分页展示所述搜索结果。
46.第二方面,本发明实施例还提供了一种数据搜索装置,包括:
47.获取模块,用于获取至少一个第一访问规则;
48.处理模块,用于根据各个所述第一访问规则的第一权重、各个所述第一访问规则以及用户输入的关键字,生成搜索条件;
49.所述处理模块,还用于根据所述搜索条件,在预设数据库中获取搜索结果。
50.第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述数据搜索方法的步骤。
51.第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述数据搜索方法的步骤。
52.第五方面,本发明实施例还提供了一种计算机程序产品,其上存储有可执行指令,该指令被处理器执行时使处理器实现第一方面所述数据搜索方法的步骤。
53.本发明实施例提供的数据搜索方法、装置、设备、存储介质和程序产品,根据各个所述第一访问规则的第一权重、各个所述第一访问规则以及用户输入的关键字,生成搜索条件;第一权重表示第一访问规则的优先级,第一权重越大,优先级越高,假设根据关键字得到的搜索结果,如果根据优先级高的第一访问规则,能够确定该搜索结果不是用户最终的搜索结果,则无需通过优先级低的第一访问规则进行判断,通过将第一访问规则前置,结合第一访问规则的第一权重及关键字共同生成搜索条件,根据所述搜索条件,在预设数据库中获取搜索结果,效率较高。
附图说明
54.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
55.图1是本发明一实施例提供的应用场景图;
56.图2是本发明提供的数据搜索方法一实施例的流程示意图;
57.图3是本发明提供的数据搜索方法另一实施例的流程示意图;
58.图4是本发明中用户规则转换流程图;
59.图5是本发明中服务器内存储的部门数据样例;
60.图6是本发明提供的数据搜索装置实施例的结构示意图;
61.图7是本发明提供的电子设备实施例的结构示意图。
具体实施方式
62.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
63.本发明实施例的方法可以应用于数据搜索场景中,满足客户对数据访问控制的同时,提升搜索效率。
64.相关技术中,首先通过关键字作为搜索条件去搜索相应的人员,然后将搜索结果逐个与预定义的多条访问规则进行匹配,不满足访问规则的搜索结果将被丢弃,满足访问规则匹配的搜索结果则添加到最终的结果集中。如果按照关键字作为搜索条件搜索得到的结果数量比较大,则搜索结果与预定义的访问规则进行逐一匹配过程中将消耗大量的时间,搜索效率较低。因此,如何提高数据搜索效率是本领域技术人员亟需解决的技术问题。
65.图1为本发明一实施例提供的应用场景图,可选地,如图1所示,该应用场景中包括电子设备11、服务器12;该电子设备11可以为用户的通讯录客户端所在的终端设备。
66.其中,电子设备11和服务器12可以通过网络连接,例如4g、5g或无线保真(wireless fidelity,wifi)等通信网络。
67.本发明提供的方法可由电子设备11如处理器执行相应的软件代码实现,也可由该电子设备11在执行相应的软件代码的同时,通过和服务器12进行数据交互来实现,如服务器执行部分操作,来控制电子设备执行数据搜索方法。
68.本发明实施例的数据搜索方法,通过获取至少一个第一访问规则,然后根据各个第一访问规则的第一权重、各个第一访问规则以及用户输入的关键字,生成搜索条件,第一权重可以表示第一访问规则的优先级,第一权重越大,优先级越高,假设根据关键字得到的搜索结果,如果根据优先级高的第一访问规则,能够确定该搜索结果不是用户最终的搜索结果,则无需通过优先级低的第一访问规则进行判断,因此根据搜索条件,在预设数据库中获取搜索结果,效率较高。
69.下面结合图2-图5以具体的实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
70.图2是本发明实施例提供的数据搜索方法一实施例的流程示意图。如图2所示,本实施例提供的方法,包括:
71.步骤101、获取至少一个第一访问规则。
72.具体的,访问规则可以是对用户访问的联系人资源进行限制,例如,用户只能与某些部门的员工通讯。
73.对于某个用户来说,该用户可能会存在多个第一访问规则;若该用户无任何一个第一访问规则,则说明该用户无访问的权限,搜索结果为空。
74.步骤102、根据各个第一访问规则的第一权重、各个第一访问规则以及用户输入的关键字,生成搜索条件。
75.具体的,访问规则的权重需要遵从以下两个原则:
76.权重值越大,访问规则的优先级越高。假设对同一个联系人资源的访问会同时命
中至少2条访问规则,那么优先级高的访问规则将优先被使用;
77.控制资源访问的粒度越细,权重越大。其中,控制资源访问会涉及到调用方和受访资源,例如,调用方包括搜索请求人的员工标识、部门标识,受访资源包括需要搜索访问的目标员工的标识(如工号)、部门标识。
78.例如,表1定义了如下几种访问规则,若该用户获取的第一访问规则为规则1和规则3,对应的权重为100和80,用户输入的关键字为“李”,则根据规则1、规则3以及关键字“李”生成搜索条件。
79.表1
[0080][0081]
步骤103、根据搜索条件,在预设数据库中获取搜索结果。
[0082]
例如,根据规则1、规则3及关键字“李”生成搜索条件,在预设数据库中获取搜索结果。例如,若数据库中联系人“李xx”不符合规则1的要求,则可以无需再与规则3匹配,则最终的搜索结果中没有该联系人;若数据库中联系人“李xx”符合规则1的要求,则进一步再与规则3匹配,若与规则3匹配,即符合规则3的要求,则最终的搜索结果中包括该联系人。
[0083]
本实施例的方法,通过获取至少一个第一访问规则,然后根据各个第一访问规则的第一权重、各个第一访问规则以及用户输入的关键字,生成搜索条件,第一权重表示第一访问规则的优先级,第一权重越大,优先级越高,假设根据关键字得到的搜索结果,如果根据优先级高的第一访问规则,能够确定该搜索结果不是用户最终的搜索结果,则无需通过优先级低的第一访问规则进行判断,通过将第一访问规则前置,结合第一访问规则的第一权重及关键字共同生成搜索条件,根据搜索条件,在预设数据库中获取搜索结果,效率较高。
[0084]
在一实施例中,步骤102中“根据至少一个第一访问规则的第一权重、至少一个第一访问规则以及用户输入的关键字,生成搜索条件”具体可以通过如下步骤实现:
[0085]
对各个第一访问规则按照第一权重进行降序排列,得到降序排列的各个第一访问规则;第一权重用于表示第一访问规则的优先级;用户访问的数据粒度越细,第一权重越大;
[0086]
根据降序排列的各个第一访问规则以及用户输入的关键字,生成搜索条件。
[0087]
例如,定义了表2如下几种规则,若该用户获取的第一访问规则为规则1和规则4,
规则1的用户访问的数据粒度为员工号,即调用方和受访资源都是员工号;规则4的用户访问的数据粒度为部门号,即调用方和受访资源都是部门号;规则1员工号的数据粒度较规则4部门号的数据粒度更细,规则1的第一权重较规则4的权重大;规则1对应的第一权重为100,规则4对应的第一权重为70,按照第一权重降序排列后得到规则1、规则4。如果用户输入的关键字为“李”,则根据降序排列的各个第一访问规则以及用户输入的关键字生成搜索条件,即为根据规则1、规则4和关键字“李”生成搜索条件,规则1相较于规则4将优先被使用。
[0088]
搜索条件包括:判断数据库中的数据是否包括关键字,且依次判断该数据是否满足规则1、是否满足规则4。
[0089]
例如,数据库中第一条联系人姓名为李强,则根据搜索条件判断该联系人信息中是否包含关键字“李”,且依次判断该联系人信息是否满足规则1、是否满足规则4。
[0090]
表2
[0091][0092]
上述实施方式中,通过将各个第一访问规则按照第一权重进行降序排列,搜索条件中权重大的规则将被优先使用,如果优先使用的第一访问规则,能够确定该搜索结果不是用户最终的搜索结果,则无需通过优先级低的第一访问规则进行判断,因此根据搜索条件,在预设数据库中获取搜索结果,效率较高。
[0093]
在一实施例中,步骤103中“根据搜索条件,在预设数据库中获取搜索结果”可以通过如下方式实现:
[0094]
预设数据库为通讯录数据库,数据库中包括多个联系人信息;根据搜索条件,在预设数据库中获取搜索结果,包括:
[0095]
对于数据库中的任一个联系人信息,确定联系人信息是否满足搜索条件;
[0096]
若是,则确定联系人信息为搜索结果。
[0097]
例如,预设的数据库包括常用的关系型数据库,数据库中包括多个部门的联系人信息;搜索条件中需要访问的员工号为22,关键字为“李”,根据搜索条件在数据库中进行搜索,若数据库中当前的联系人信息员工号为22、姓名为李强,则数据库中当前的联系人李强满足搜索条件,即联系人信息李强为搜索结果。
[0098]
本实施例的方法,通过将数据库中的联系人信息与搜索条件进行匹配,确定联系
人信息是否满足搜索条件;匹配过程中,搜索条件中权重大的规则将被优先使用,如果优先使用的第一访问规则,能够确定该搜索结果不是用户最终的搜索结果,则无需通过优先级低的第一访问规则进行判断,因此根据方法,在预设数据库中获取搜索结果,效率较高。
[0099]
进一步地,联系人信息包括联系人名字,关键字为联系人名字中的至少一部分;确定联系人信息是否满足搜索条件,包括:
[0100]
按照搜索条件中各个第一访问规则降序排列的顺序,依次确定联系人信息是否满足各个第一访问规则,并确定关键字是否与联系人名字匹配;
[0101]
若联系人信息均满足各个第一访问规则,且关键字与联系人名字匹配,则确定联系人信息满足搜索条件。
[0102]
例如,联系人信息包括联系人姓名,联系人工号,联系人年龄,联系人职务信息等;关键字包括:联系人的姓、联系人名字、或者至少包括联系人完整姓名中的一部分。
[0103]
假如搜索条件中需要访问的员工号为22,关键字为“李”,按照搜索条件中各个第一访问规则降序排列的顺序为表2中的规则1、规则4,依次确定数据库中的联系人信息是否满足规则1、规则4,即该联系人信息是否为员工号22且允许被员工号11的员工访问,该联系人信息是否是部门2的员工且允许被部门1的员工访问;若数据库中当前联系人信息满足规则1、规则4的联系人信息为李强,且关键字“李”与当前联系人名字也匹配,那么该联系人信息李强满足搜索条件;若数据库中当前联系人信息不满足规则1,那么当前联系人信息不满足搜索条件;
[0104]
本实施例的方法,按照搜索条件中各个第一访问规则降序排列的顺序,依次确定联系人信息是否满足各个第一访问规则,并确定关键字是否与联系人名字匹配;如果根据权重大的第一访问规则,能够确定该搜索结果不是用户最终的搜索结果,则无需通过优先级低的第一访问规则进行判断,效率较高。
[0105]
进一步地,按照搜索条件中各个第一访问规则降序排列的顺序,依次确定联系人信息是否满足各个第一访问规则,包括:
[0106]
若联系人信息不满足排列在前的第一访问规则,则确定不满足搜索条件;
[0107]
若联系人信息满足排列在前的第一访问规则,则确定是否满足排列在后的第一访问规则。
[0108]
例如,搜索条件中需要访问的员工号为22,关键字为“李”,按照搜索条件中各个第一访问规则降序排列的顺序为表1中的规则1、规则4,若数据库中的当前联系人信息不满足规则1,则确定不满足搜索条件;若数据库中的当前联系人信息满足规则1,则继续判断当前联系人信息是否满足规则4。
[0109]
本实施例的方法,如果根据权重大的第一访问规则,能够确定该搜索结果不是用户最终的搜索结果,则无需通过优先级低的第一访问规则进行判断,因此根据方法,在预设数据库中获取搜索结果,效率较高。
[0110]
在一实施例中,步骤101之前可以执行如下操作:
[0111]
获取预设的至少两个第二访问规则及第二访问规则对应的第二权重,第二权重用于表示第二访问规则的优先级;
[0112]
按照第二权重对至少两个第二访问规则进行分组,得到至少一个分组;
[0113]
对各个分组中的第二访问规则进行合并处理,以及按照预设的冲突规则进行处
理,得到处理后的各个分组;
[0114]
步骤101“获取至少一个第一访问规则”可以通过如下方式实现:
[0115]
从处理后的各个分组中获取至少一个第一访问规则。
[0116]
具体的,针对不同的访问用户以及访问的联系人资源;可以预设多个第二访问规则及第二访问规则对应的第二权重,第二权重用于表示第二规则的优先级;
[0117]
将获取的第二访问规则按照第二权重进行分组,可以将同一权重的规则分为一组,也可以将一定权重范围内的规则分为一组,得到至少一个分组;并对各个分组中的第二访问规则进行合并处理,以及按照预设的冲突规则进行处理,得到处理后的各个分组;例如,获取的2个预设规则:第二访问规则1和第二访问规则2,第二访问规则1表示可以访问某个部门的联系人,而第二访问规则2表示不可以访问该部门的某个联系人,第一访问规则和第二访问规则分为一组;假设第二访问规则2的权重较大,则可以将第二访问规则1丢弃,预设的冲突规则可以指按照权重大小进行冲突处理,可选地,还可以对相同或有重叠的规则进行合并,例如某一分组中存在2个第二访问规则,分别为第二访问规则4和第二访问规则3,若第二访问规则4和第二访问规则3相同,或有重叠部分,则可以将第二访问规则4和第二访问规则3进行合并,或者将该分组中的第二访问规则4保留,将第二访问规则3舍弃。
[0118]
最后从处理后的各个分组中获取用户对应的第一访问规则。其中,第二权重和第一权重可以相同或不同,本发明实施例对此并不限定。
[0119]
上述实施方式中,通过将获取的至少两个第二访问规则按照第二权重进行分组,并进行冲突、合并等处理,然后从各个分组中获取用户的第一访问规则,分组之后能够减少规则的数量,因此能够较快得到该用户的第一访问规则。
[0120]
示例性的,如图3所示,本实施例的数据搜索方法包括:
[0121]
数据搜索方法应用于电子设备,电子设备包括客户端、搜索服务组件和es数据库,数据搜索方法还包括:
[0122]
步骤a1、客户端获取用户输入的关键字;
[0123]
具体地,该步骤a1参见图3中步骤1。
[0124]
例如,员工号11的员工输入的搜索关键字为“李”,客户端获取的关键字即为“李”。
[0125]
步骤a2、客户端向搜索服务组件发送搜索请求,搜索请求包括关键字;
[0126]
具体地,该步骤a2参见图3中步骤2。
[0127]
例如,客户端将用户输入转换成搜索请求,搜索请求包括关键字“李”,客户端请求搜索服务组件,并等待响应。
[0128]
获取至少一个访问规则,包括:
[0129]
步骤a3、搜索服务组件根据搜索请求,获取至少一个第一访问规则;
[0130]
具体地,该步骤a3参见图3中步骤3。
[0131]
可选地,搜索服务组件接收到搜索请求之后,搜索服务组件根据搜索请求,确定是否已存储至少一个访问规则;若未存储至少一个访问规则,则搜索服务组件向规则服务组件发送规则下载请求;规则服务组件获取至少一个访问规则,并将至少一个访问规则发送给搜索服务组件。
[0132]
例如,搜索服务组件根据搜索服务请求,判断无任何访问规则,则搜索服务组件向规则服务组件发送规则下载请求,如果规则服务获取了访问规则1和访问规则2,则将访问
规则1和访问规则2发送给搜索服务组件;
[0133]
根据各个第一访问规则的第一权重、各个第一访问规则以及用户输入的关键字生成搜索条件,包括:
[0134]
步骤a4、搜索服务组件根据各个第一访问规则的第一权重、各个第一访问规则以及用户输入的关键字,生成搜索条件;
[0135]
具体地,该步骤a4参见图3中步骤4。
[0136]
例如,将下载的第二访问规则按照权重进行分组,从多个分组中的每一组获取用户对应的第一访问规则;然后对各个第一访问规则按照第一权重进行降序排列,得到降序排列的各个第一访问规则;最后根据降序排列的各个第一访问规则以及用户输入的关键字,生成搜索条件。
[0137]
例如,下载的第二访问规则如下:
[0138]
表3
[0139]
规则号调用方受访资源是否可搜规则1员工号11员工号22是规则2员工号12员工号33否规则3员工号11部门号2否规则4部门号1员工号22否规则5部门号3员工号22是规则6部门号1部门号3是规则7部门号3部门号2否
[0140]
各规则权重如下:
[0141]
表4
[0142][0143][0144]
将下载的第二访问规则按照权重分为4组,其中规则1和规则2为一组、规则3为一组、规则4和规则5为一组、规则6和规则7为一组;进行合并、冲突解决等处理从4个分组中的每一组获取用户对应的第一访问规则,例如有4个第一访问规则,分别为规则3、规则4、规则6、规则1;然后对4个第一访问规则按照第一权重进行降序排列,得到降序排列的第一访问
规则为规则1、规则3、规则4、规则6;最后根据降序排列的第一访问规则以及用户输入的关键字,生成搜索条件如下:
[0145][0146][0147]
员工号11的员工输入的搜索关键字为“李”,即调用方员工号为11,规则1表示调用方员工号11可以访问员工号22的资源;规则3表示调用方员工号11不可以访问部门号为2的资源;规则4表示部门号为1的员工不可以访问员工号22的资源;规则6表示部门号为1的员工不可以访问部门号为3的资源。
[0148]
员工号11的员工获取的访问规则3,权重为90;访问规则1,权重为100;访问规则6,权重为70;访问规则4,权重为80;按照权重降序排列后的顺序为访问规则1、访问规则3、访问规则4、访问规则6;根据员工号11的员工输入的搜索关键字“李”和权重降序排列的规则生成搜索条件;其中,按照搜索条件搜索时,将按照规则的权重降序顺序与数据库中的联系
人信息进行匹配,具体如下:
[0149]
判断数据库中当前的联系人信息是否满足规则1和关键字“李”的搜索条件,若不满足,则进行数据库中下一个联系人信息的匹配;
[0150]
若当前的联系人信息满足规则1和关键字“李”的搜索条件,则继续判断该联系人信息是否满足规则3和关键字“李”的搜索条件,若不满足,则继续进行数据库中下一个联系人信息的匹配;
[0151]
若当前的联系人信息满足规则3和关键字“李”的搜索条件,则继续判断该联系人信息是否满足规则4和关键字“李”的搜索条件,若不满足,则继续进行数据库中下一个联系人信息的匹配;
[0152]
若当前的联系人信息满足规则4和关键字“李”的搜索条件,则继续判断该联系人信息是否满足规则6和关键字“李”的搜索条件,若不满足,则继续进行数据库中下一个联系人信息的匹配;
[0153]
若满足规则6和关键字“李”的搜索条件,则数据库中当前联系人信息满足规则1、规则3、规则4、规则6和关键字生成的搜索条件,将该联系人信息加入到搜索结果集中,并开始数据库中下一个联系人的匹配。
[0154]
例如,当前数据库的联系人信息为李一,员工号为22,部门号为2,员工号11的输入的搜索关键字为“李”,员工号11的部门号为2,获取第一访问规则3、权重为90;第一访问规则1、权重为100;第一访问规则6、权重为70;第一访问规则4、权重为80;按照权重降序排列后的顺序为第一访问规则1、第一访问规则3、第一访问规则4、第一访问规则6;则员工号11的员工对应的搜索条件为:判断数据库中当前的联系人信息李一是否满足规则1和关键字“李”生成的搜索条件,规则1表示调用方员工号11可以访问员工号22的资源,李一员工号为22,即当前联系人信息满足规则1和关键字“李”的搜索条件;
[0155]
继续判断当前的联系人信息李一是否满足规则3和关键字“李”生成的搜索条件,规则3表示调用方员工号11不可以访问部门号为2的资源;李一部门号为2,即当前联系人信息不满足规则3和关键字“李”的搜索条件,继续进行数据库中下一个联系人的匹配;
[0156]
当前联系人李一和搜索条件的匹配结果:李一满足规则1和关键字“李”生成的搜索条件,但不满足规则3和关键字“李”生成的搜索条件,当前联系人不满足搜索条件,继续进行数据库中下一个联系人的匹配。
[0157]
若数据库中下一个联系人信息为李强,员工号为22,部门号为1,则该联系人信息满足规则1和关键字“李”生成的搜索条件,规则1表示调用方员工号11可以访问员工号22的资源,即当前联系人信息李强满足规则1和关键字“李”的搜索条件;
[0158]
继续判断当前的联系人信息李强是否满足规则3和关键字“李”生成的搜索条件,规则3表示调用方员工号11不可以访问部门号为2的资源;李强部门号为1,即当前联系人信息满足规则3和关键字“李”的搜索条件;
[0159]
继续判断当前的联系人信息李强是否满足规则4和关键字“李”生成的搜索条件,规则4表示表示部门号为1的员工不可以访问员工号22的资源;员工号11的部门号为2,即当前联系人信息满足规则4和关键字“李”的搜索条件;
[0160]
继续判断当前的联系人信息李强是否满足规则6和关键字“李”生成的搜索条件,规则6表示部门号为1的员工不可以访问部门号为3的资源;员工号11的部门号为2,联系人
信息李强的部门号为1,即当前联系人信息满足规则6和关键字“李”的搜索条件;将联系人信息李强加入搜索结果集中,开始下一条数据库联系人信息和搜索条件的匹配。
[0161]
联系人信息李强和搜索条件的匹配结果:李强满足规则1和关键字“李”生成的搜索条件,满足规则3和关键字“李”生成的搜索条件,满足规则4和关键字“李”生成的搜索条件,满足规则6和关键字“李”生成的搜索条件,即联系人信息李强满足规则和关键字生成的搜索条件,将该联系人信息李强加入搜索结果集中,开始下一条数据库联系人信息和搜索条件的匹配;如果数据库中全部联系人信息和搜索条件全部匹配完成,则本次搜索结束。
[0162]
根据搜索条件,在预设数据库中获取搜索结果,包括:
[0163]
步骤a5、搜索服务组件根据搜索条件,从es数据库中获取搜索结果;
[0164]
具体地,该步骤a5参见图3中步骤5。
[0165]
es数据库是一个搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎,是目前常用的企业级搜索引擎。
[0166]
可选地,存储在数据库中员工信息及索引格式如下,部门结构样例如图5所示:
[0167]
表5
[0168]
字段名称数据类型描述员工号整型 员工姓名文本 部门号数组类型包含祖先部门和末级部门
[0169]
步骤a6、客户端向用户展示搜索结果;
[0170]
具体地,该步骤a6参见图3中步骤6。
[0171]
若搜索结果超过预设数量时,客户端向用户分页展示搜索结果。
[0172]
例如,满足搜索条件的搜索结果包括35项,且35项搜索结果均存在不同的页面中,基于es数据库提供的倒排索引技术和数据分页功能,将根据搜索条件得到的搜索结果进行倒排索引和分页展示,如客户端每页最大展示20条搜索结果,则可以分2页向用户展示搜索结果;而采用现有的数据搜索技术,由于先通过关键字匹配输出结果,再在输出结果中通过后置的规则匹配,实现数据过滤,无法提供数据分页展示的功能,35项搜索结果将在35个页面显示,展示效果不友好。
[0173]
本发明实施例的数据搜索方法,通过获取至少一个第一访问规则,然后根据各个第一访问规则的第一权重、各个第一访问规则以及用户输入的关键字,生成搜索条件,第一权重可以表示第一访问规则的优先级,第一权重越大,优先级越高,假设根据关键字得到的搜索结果,如果根据优先级高的第一访问规则,能够确定该搜索结果不是用户最终的搜索结果,则无需通过优先级低的第一访问规则进行判断,因此根据搜索条件,在预设数据库中获取搜索结果,效率较高。
[0174]
下面对本发明提供的数据搜索装置进行描述,下文描述的数据搜索装置与上文描述的数据搜索方法可相互对应参照。
[0175]
图6是本发明提供的数据搜索装置的结构示意图。本实施例提供的数据搜索装置,包括:
[0176]
获取模块210,获取至少一个第一访问规则;
[0177]
处理模块220,根据各个所述第一访问规则的第一权重、各个所述第一访问规则以
及用户输入的关键字,生成搜索条件;
[0178]
根据所述搜索条件,在预设数据库中获取搜索结果。
[0179]
可选地,所述获取模块220,具体用于:
[0180]
对各个所述第一访问规则按照第一权重进行降序排列,得到降序排列的各个所述第一访问规则;所述第一权重用于表示所述第一访问规则的优先级;所述用户访问的数据粒度越细,所述第一权重越大;
[0181]
根据降序排列的各个所述第一访问规则以及用户输入的关键字,生成搜索条件。
[0182]
可选地,所述获取模块220,具体用于:
[0183]
所述预设数据库为通讯录数据库,所述数据库中包括多个联系人信息,所述根据所述搜索条件,在预设数据库中获取搜索结果,包括:
[0184]
对于所述数据库中的任一个所述联系人信息,确定所述联系人信息是否满足所述搜索条件;
[0185]
若是,则确定所述联系人信息为所述搜索结果。
[0186]
可选地,所述处理模块220,具体用于:
[0187]
所述联系人信息包括联系人名字,所述关键字为联系人名字中的至少一部分;所述确定所述联系人信息是否满足所述搜索条件,包括:
[0188]
按照所述搜索条件中各个所述第一访问规则降序排列的顺序,依次确定所述联系人信息是否满足各个所述第一访问规则,并确定所述关键字是否与所述联系人名字匹配;
[0189]
若所述联系人信息均满足各个所述第一访问规则,且所述关键字与所述联系人名字匹配,则确定所述联系人信息满足所述搜索条件。
[0190]
可选地,所述处理模块220,具体用于:
[0191]
所述按照所述搜索条件中各个所述第一访问规则降序排列的顺序,依次确定所述联系人信息是否满足各个所述第一访问规则,包括:
[0192]
若所述联系人信息不满足排列在前的第一访问规则,则确定不满足所述搜索条件;
[0193]
若所述联系人信息满足排列在前的第一访问规则,则确定是否满足排列在后的第一访问规则。
[0194]
预设数据库中可选地,所述处理模块210,具体用于:
[0195]
获取预设的至少两个第二访问规则及所述第二访问规则对应的第二权重,所述第二权重用于表示所述第二访问规则的优先级;
[0196]
按照第二权重对所述至少两个第二访问规则进行分组,得到至少一个分组;
[0197]
对各个所述分组中的第二访问规则进行合并处理,以及按照预设的冲突规则进行处理,得到处理后的各个所述分组;
[0198]
所述获取至少一个第一访问规则,包括:
[0199]
从处理后的各个所述分组中获取所述至少一个第一访问规则。
[0200]
可选地,所述处理模块210和220,具体用于:
[0201]
客户端获取用户输入的关键字;
[0202]
所述客户端向搜索服务组件发送搜索请求,所述搜索请求包括所述关键字;
[0203]
所述获取至少一个第一访问规则,包括:
[0204]
所述搜索服务组件根据所述搜索请求,获取所述至少一个第一访问规则;
[0205]
所述根据各个所述第一访问规则的第一权重、各个所述第一访问规则以及用户输入的关键字,生成搜索条件,包括:
[0206]
所述搜索服务组件根据各个所述第一访问规则的第一权重、各个所述第一访问规则以及用户输入的关键字,生成所述搜索条件;
[0207]
所述根据所述搜索条件,在预设数据库中获取搜索结果,包括:
[0208]
所述搜索服务组件根据所述搜索条件,从数据库中获取搜索结果;
[0209]
所述方法还包括:
[0210]
所述客户端向所述用户展示所述搜索结果。
[0211]
可选地,所述处理模块210,具体用于:
[0212]
所述搜索服务组件根据所述搜索请求,确定是否已存储所述至少一个第一访问规则;
[0213]
若未存储所述至少一个第一访问规则,则所述搜索服务组件向所述规则服务组件发送所述规则下载请求;
[0214]
所述规则服务组件获取所述至少一个第一访问规则,并将所述至少一个第一访问规则发送给所述搜索服务组件。
[0215]
本发明实施例的装置,其用于执行前述任一方法实施例中的方法,其实现原理和技术效果类似,此次不再赘述。
[0216]
举个例子如下:
[0217]
图7示例了一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(procsor)810、通信接口(communications interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行如下方法:获取至少一个第一访问规则;根据各个所述第一访问规则的第一权重、各个所述第一访问规则以及用户输入的关键字,生成搜索条件;根据所述搜索条件,在预设数据库中获取搜索结果。
[0218]
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random accs memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0219]
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的数据搜索方法,例如包括:获取至少一个第一访问规则;根据各个所述第一访问规则的第一权重、各个所述第一访问规则以及用户输入的关键字,生成搜索条件;根据所述搜索条件,在预设数据库中获取搜索结果。
[0220]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可
以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0221]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0222]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1