1.本技术涉及计算机技术领域,尤其是涉及一种信息检索方法、信息检索装置、电子设备和计算机可读存储介质。
背景技术:2.随着互联网技术的发展和迅速普及,每天互联网上产生的数据的数量以千万级别增加,想要在海量的数据资源中寻找需要的内容,无异于大海捞针。为了满足人们的搜索需求,搜索引擎应运而生。搜索引擎是指根据一定的策略、运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,并将检索到的相关信息展示给用户的功能模块。
3.目前大多数搜索引擎均是全网搜索,信息嘈杂不堪,甚至被大量广告所充斥。站内搜索引擎可针对用户关注的网站进行站内全局搜索,提高了信息搜索的相关性。其中,网站内的敏感业务数据在保存时,都需要加密保存在相应的业务数据库中,以保障业务数据的安全性。
4.然而,当用户想要检索的数据是被加密的数据时,站内搜索引擎因为无法解密数据而不能做出回应,导致用户无法检索到需要的数据。
技术实现要素:5.本技术提供一种信息检索方法、信息检索装置、电子设备和计算机可读存储介质,解决相关技术中当用户想要检索的数据是被加密的数据时,站内搜索引擎因为无法解密数据而不能做出回应,导致用户无法检索到需要的数据的问题。
6.本技术的技术方案是这样实现的:
7.一种信息检索方法,所述方法包括:
8.获得针对检索信息的检索请求,其中,所述检索信息具有属性信息;
9.若所述属性信息对应的检索方式为加密检索方式,获得所述检索信息对应的加密后的检索信息;
10.基于加密后的检索信息在搜索服务器对应的数据库中进行检索,得到检索结果,并输出所述检索结果。
11.一种信息检索装置,所述信息检索装置包括:
12.获取单元,用于获得针对检索信息的检索请求,其中,所述检索信息具有属性信息;
13.处理单元,用于若所述属性信息对应的检索方式为加密检索方式,获得所述检索信息对应的加密后的检索信息;
14.所述处理单元,还用于基于加密后的检索信息在搜索服务器对应的数据库中进行检索,得到检索结果,并输出所述检索结果。
15.一种电子设备,所述电子设备包括:,
16.存储器,用于存储可执行指令;
17.处理器,用于执行所述存储器中存储的可执行指令时,实现上述信息检索方法的步骤。
18.一种计算机存储介质,所述计算机存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上述的信息检索方法的步骤。
19.本技术所提供的信息检索方法、信息检索装置、电子设备和计算机可读存储介质,获得针对检索信息的检索请求,其中,检索信息具有属性信息;若属性信息对应的检索方式为加密检索方式,获得检索信息对应的加密后的检索信息;基于加密后的检索信息在搜索服务器对应的数据库中进行检索,得到检索结果,并输出检索结果;如此,解决了相关技术中当用户想要检索的数据是被加密的数据时,站内搜索引擎因为无法解密数据而不能做出回应,导致用户无法检索到需要的数据的问题,确保用户的检索不受加密的限制,提高搜索服务器返回的检索结果的准确性。
附图说明
20.图1为相关技术提供的一种业务系统站内检索的结构示意图;
21.图2为相关技术提供的另一种业务系统站内检索的结构示意图;
22.图3为本技术提供的实施信息检索方法的网络架构示意图;
23.图4为本技术提供的一种可选的信息检索方法的流程示意图;
24.图5为本技术提供的一种可选的信息检索方法的流程示意图;
25.图6是本技术提供的将业务数据存储到搜索服务器的流程示意图;
26.图7为本技术提供的一种客户端呈现的搜索界面的示意图;
27.图8为本技术提供的一种业务数据转换成符合搜索服务器的数据存储结构的业务数据的示意图;
28.图9为本技术提供的一种可选的信息检索方法的流程示意图;
29.图10为本技术提供的一种第一分词结果的示意图;
30.图11为本技术提供的一种可选的信息检索方法的流程示意图;
31.图12为本技术提供的一种可选的信息检索方法的流程示意图;
32.图13为本技术提供的一种信息检索装置的结构示意图;
33.图14为本技术提供的一种电子设备的结构示意图。
具体实施方式
34.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,这里,关于附图说明中提到的“另一种”或“又一种”并非指特定某个实施例,本技术的各个实施例可以在不冲突的情况下相互结合。
35.应理解,说明书通篇中提到的“本技术实施例”或“前述实施例”意味着与实施例有关的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在整个说明书各处出现的“本技术实施例中”或“在前述实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中应用。在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以
其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
36.在解释本技术之前,首先针对相关技术中业务系统的站内检索进行简要说明:
37.如图1和图2是相关技术中业务系统的站内检索的界面示意图。根据图1所示的业务系统的站内检索的第一界面100以及图2所示的业务系统的站内检索的第二界面200可知,业务系统都会有站内搜索框。需要说明的是,站内搜索框一般设置在业务系统首页的顶部,或者常置于业务系统的顶部。当用户向顶部的搜索框输入检索内容后,检索出本站内的不同类型的符合需求的业务数据。示例性的,办公系统站内搜索的结果一般分类展示,例如展示全部检索结果、或仅展示与公文相关的检索结果、或仅展示与工单相关的检索结果。
38.这里,业务系统中的业务数据一般保存在关系型数据库例如mysql数据库中。
39.参见图3,图3为本技术提供的实施信息检索方法的网络架构示意图,该网络架构至少包括终端设备301、搜索服务器302和网络303;其中,终端设备301和搜索服务器302通过网络303连接。这里,网络303可以是广域网或者局域网,又或者是二者的组合,使用无线链路实现数据传输。终端设备301为具备计算能力的设备,终端设备301包括但不限于手机、平板电脑、笔记本电脑、个人数字助理(personal digital assistant,pda)会议机、智能电视、膝上型便携计算机和台式计算机等;搜索服务器302可以是单个的服务器,也可以是由多各服务器构成的服务器集群、云计算中心等。
40.本技术提供了一种信息检索方法,图4为本技术提供的信息检索方法的一个实现流程示意图,该信息检索方法可以应用于图3所示的终端设备301和搜索服务器302中的任一电子设备,该信息检索方法包括以下步骤:
41.步骤401、获得针对检索信息的检索请求。
42.其中,检索信息具有属性信息。
43.本技术实施例中,获得针对检索信息的检索请求,可以是终端设备获得针对检索信息的检索请求,终端设备响应该检索请求;也可以是终端设备将其获得的检索请求发送给搜索服务器,搜索服务器获得该检索请求,搜索服务器响应该检索请求。
44.本技术实施例中,检索请求可以是当用户针对电子设备的客户端呈现的搜索界面中相应的组件进行点击后,电子设备生成的针对该点击的检索请求。检索请求还可以是当用户打开目标链接地址后,在呈现的搜索界面中,对相应的组件执行点击操作后,电子设备生成的针对该点击的检索请求。当然,电子设备还可以基于其他方式生成上述检索请求,本技术对此不做具体限定。
45.本技术实施例中,属性信息用于指示检索信息的检索意图,检索意图可以通过对检索信息进行语义分析得到,检索意图包括但不限于交易型检索意图即用户主要以购买为目的而进行的搜索,检索信息都传达了用户的购买倾向;导航型检索意图,即用户已知要查找的目的页面,用户输入的检索信息是具有排他性的,以方便进入为目的的搜索;信息型检索意图,即用户利用搜索引擎寻找问题的答案,这种意图用户预先并不清楚呈现的结果,也没有明确的搜索目标。当然,属性信息还可以用于指示检索信息的信息类型,信息类型可以通过分析检索信息中的关键词得到,信息类型包括但不限于敏感类型或非敏感类型,这里,敏感类型对应的关键词包括但不限于身份证、银行卡、密码等。
46.步骤402、若属性信息对应的检索方式为加密检索方式,获得检索信息对应的加密
后的检索信息。
47.本技术实施例中,若属性信息表征用户输入的检索信息是敏感类型的业务数据,即用户对敏感业务数据进行检索,那么,电子设备会对用户输入的检索信息进行加密,并获得加密后的检索信息。若属性信息表征用户输入的检索信息是非敏感类型的业务数据,即用户对非敏感业务信息进行检索,那么,电子设备不会对用户输入的检索信息进行加密,直接基于用户输入的未加密的检索信息进行检索。
48.本技术实施例中,为了保证敏感业务数据的安全性,保存业务数据到数据库中时,可通过某种加密方式实现明文数据加密生成密文数据,再保存数据库中,保证敏感数据的安全性。
49.本技术提供一种加密方法,将用户输入的检索信息包含的所有字符都进行加密操作。这里,对本技术提供的加密方法进行简要说明。电子设备创建了一个公有的stringencryption方法作为本技术的加密方法。首先,在实施该方法时先定义一个字符序列可变的字符串对象enstrbuilder;然后,判断电子设备传递过来的需要加密的内容content是否为空,若为空,即传递的content不存在任何实质性的内容,则直接返回当前传递过来的内容;若不为空,定义一个数组用于存放需要加密的内容content,将传递来到的每一个字符数据通过char方法将字符转换成美国信息交换标准代码(american standard code for information interchange,ascii),然后对转换后的字符进行加一并返回加密后的内容。需要说明的是,每个传递的字符串只能被进行一次加密,不能对同一字符串多次加密,因此,在stringencryption方法中引入final关键字,以防止同一字符串被多次加密,实现代码如下:
50.public static string stringencryption(final string content){
51.final stringbuilder enstrbuilder=new stringbuilder();
52.if(stringutils.isblank(content)){return enstrbuilder.tostring();}//判断传递过来的字符串是否为空
53.final char[]contetnchararray=content.tochararray();//定义一个数组用于存放需要加密的内容content
[0054]
for(final char str:contetnchararray){enstrbuilder.append((char)(str+1));}returnenstrbuilder.tostring();}//将传递来到的每一个字符数据通过char方法将字符转换成ascii,然后对转换后的字符进行加1并返回加密后的内容
[0055]
需要说明的是,电子设备获取到用户对“待办事项关联的业务标题”这一属性信息进行检索,输入与待办事项关联的业务标题相关的检索信息为“苏州是个好地方”,假设电子设备判断待办事项关联的业务标题这一属性信息属于敏感数据,那么采用上述的加密方式对用户输入的检索信息进行加密,得到加密后的检索信息为“苐巟昰丫奾圱斺”。
[0056]
本技术实施例中,对检索信息进行加密可以采用上述提供的加密方式,也可以采用公有的加密方式,例如信息摘要加密算法(message-digest algorithm5,md5)、数字签名加密算法(digital signature algorithm,dsa)、国际数据加密算法(international data encryption algorithm,idea)等,本技术不做具体地限定。
[0057]
本技术实施例中,针对判断属性信息对应的检索方式是否为加密检索方式,可以是终端设备在响应检索请求之后,终端设备判断检索信息的属性信息对应的检索方式是否
为加密检索方式,若判断的结果为检索信息的属性信息对应的检索方式是加密检索方式,终端设备对检索信息进行加密,终端设备获得加密后的检索信息;也可以是搜索服务器在响应检索请求之后,搜索服务器判断检索信息的属性信息对应的检索方式是否为加密检索方式,若判断的结果为检索信息的属性信息对应的检索方式是加密检索方式,搜索服务器对检索信息进行加密,搜索服务器获得加密后的检索信息。
[0058]
步骤403、基于加密后的检索信息在搜索服务器对应的数据库中进行检索,得到检索结果,并输出检索结果。
[0059]
本技术实施例中,当终端设备将用户输入的检索信息加密后,终端设备可以将加密后的检索信息发送给搜索服务器,搜索服务器接收到终端设备发送来的加密后的检索信息,搜索服务器将加密后的检索信息与自身的数据库中存储的相关信息进行匹配,得到检索结果,并将检索结果发送给终端设备,终端设备在接收到搜索服务器发送来的检索结果后,输出检索结果。
[0060]
本技术实施例中,当搜索服务器将用户输入的检索信息加密后,搜索服务器将加密后的检索信息与自身的数据库中存储的相关信息进行匹配,得到并输出检索结果。
[0061]
本技术实施例中,当加密后的检索信息与搜索服务器的数据库中存储的相关信息进行匹配时,匹配度越高的相关信息,在输出的检索结果的时候,它的显示位置越靠前,以便用户优先了解到相关度较高的检索结果。
[0062]
本技术提供的信息检索方法,获得针对检索信息的检索请求;其中,检索信息具有属性信息;若属性信息对应的检索方式为加密检索方式,获得所述检索信息对应的加密后的检索信息;基于加密后的检索信息在搜索服务器对应的数据库中进行检索,得到检索结果,并输出检索结果。如此,解决了相关技术中当用户想要检索的数据是被加密的数据时,站内搜索引擎因为无法解密数据而不能做出回应,导致用户无法检索到需要的数据的问题,确保用户的检索不受加密的限制,提高搜索服务器返回的检索结果的准确性。同时,用户输入待检索信息,电子设备基于用户输入的检索信息在搜索服务器的数据库进行检索,使得所有与待检索内容相关的业务表都可以被检索到,最大程度的保障了检索的范围。
[0063]
参见图5,图5是本技术提供的信息检索方法的一个实现流程示意图,该信息检索方法可以应用于图3所示的网络架构;如图5所示,这里,以信息检索方法应用于终端设备301为例进行说明,该方法包括以下步骤:
[0064]
步骤501、通过终端设备中的应用程序调用与业务数据对应的定时任务线程,对终端设备中的业务数据库中的业务数据进行加密,并将加密后的业务数据发送至搜索服务器对应的数据库。
[0065]
其中,不同业务数据对应的定时任务线程不同,且各个定时任务线程的调用周期相同,业务数据具有属性信息。
[0066]
本技术实施例中,若终端设备中的业务数据库中的业务数据的属性信息为敏感业务数据,终端设备会对这些敏感业务数据进行加密,并且通过终端设备中的应用程序调用与业务数据对应的定时任务线程,将加密后的业务数据发送至搜索服务器对应的数据库。需要说明的是,对敏感业务数据进行加密,可以在应用程序调用定时任务线程的同时,也可以是在应用程序调用定时任务线程之前,本技术对此不做具体限定。
[0067]
图6是终端设备将业务数据存储到搜索服务器的流程示意图,如图6所示,终端设
备通过终端设备中的应用程序601调用与业务数据对应的定时任务线程,例如第一定时任务程序6011、第二定时任务程序6012、第三定时任务程序6013以及第四定时任务程序6014,将终端设备中的业务数据库602例如mysql数据库中存储的业务数据发送至搜索服务器对应的数据库603。
[0068]
本技术实施例中,终端设备会通过终端设备中的应用程序调用与业务数据对应的定时任务线程。明显,不同业务数据对应于不同定时任务线程。需要说明的是,各个定时任务线程的调用周期相同,例如办公系统中待办事项数据每10分钟调用一次定时任务线程。
[0069]
本技术实施例中,各个定时任务线程的调用周期相同,可以是各个定时任务线程在一个固定的时间点同时执行,也可以是各个定时任务线程交错执行,这里,用户可以根据自己的需求自行设置,只要每个定时任务线程的上一次执行时间与下一次执行时间的间隔相同即可,因此,本技术对每个定时任务线程的开启时间以及调用周期的具体时长不做具体限定;如此,有效的保障了应用程序的灵活性,可以针对不同的业务场景设置合适的调用周期,例如,若处于业务数据查询频繁的场景,可以设置每隔10分钟调用一次;若处于业务数据查询不频繁的场景,可以设备每隔一天调用一次。
[0070]
本技术以搜索服务器为elasticsearch(es)例,在实施将终端设备中的业务数据库中的业务数据发送至es对应的数据库之前,还需要先进行组件选择和环境搭建。本技术提供的实施方式中采用的组件为:版本号为1.8的java语言的开发工具包(java development kit,jdk)、版本号为6.3.2的es、插件版本号为6.3.2的ik分词器、版本号为1.5.7的开源应用框架spring boot、版本号为5.7.22的关系型数据库mysql。
[0071]
这里,进行环境搭建时,首先,需要在电子设备中安装版本号为1.8的jdk,使得当前电子设备具备运行java应用程序的能力;其次,在intellij idea开发工具中选择maven项目对象模型去构建一个应用框架为spring boot的java项目,相应的该项目会在电子设备的指定位置生成一个文件夹;该文件夹包含用于描述了项目依赖关系的pom.xml文件、用于配置maven的运行环境的setting.xml文件、用于配置相关参数的properties文件以及其他配置文件;再次,在pom.xml文件中引入es依赖,并在properties文件中配置es的相关参数;最后,在新建的java项目中增加elasticsearchconfig.java文件,以调用相关参数使得新建的java项目配置了es搜索服务器的功能。
[0072]
这里,在pom.xml文件中引入es依赖,即在pom.xml文件中新增如下结构,并在结构的相应位置添加与es的相关信息。
[0073][0074][0075]
其中,dependency关键字用于为新建的java项目配置依赖项。groupid关键字是项
目组织的唯一标识符,实际对应java的包的结构,是主目录里java的目录结构。artifactid关键字是配置项目的唯一的标识符,实际对应的项目的名称,就是项目根目录的名称。需要说明的是,groupid关键字与artifactid关键字相当于“坐标”,可以根据这两个关键字从maven内置了一个中央仓库中找到相应的组件。version关键字用于配置版本号。需要说明的是,groupid关键字、artifactid关键字以及version关键字构成一个组,在dependency关键字之间可以有多个组。
[0076]
exclusions关键字是用于排除传递性依赖,需要说明的是,项目a依赖项目b,那么当编译项目a时,是可以正常通过的。若有一个新的项目x也依赖a,如果项目x用到了涉及项目b的功能,传递那么就需要在pom.xml中利用exclusions关键字重新配置对项目b的依赖,使得依赖不会传递。需要说明的是,exclusion关键字可以重新配置一个项目的依赖,exclusions关键字中可以包含多个exclusion关键字以实现多个项目的依赖。
[0077]
示例性的,在《dependency》与《/dependency》之间添加这一组结构:《groupid》org.elasticsearch《/groupid》《artifactid》elasticsearch《/artifactid》《version》${elasticsearch.version}《/version》表征新建的java项目会根据groupid:org.elasticsearch,artifactid:elasticsearch这个坐标从maven内置的中央仓库找到一个版本号为${elasticsearch.version}的elasticsearch组件。
[0078]
示例性的,在《dependency》与《/dependency》之间添加这一组结构:《groupid》org.elasticsearch.client《/groupid》《artifactid》elasticsearch-rest-client《/artifactid》《version》${elasticsearch.version}《/version》表征新建的java项目会根据groupid:org.elasticsearch.client,artifactid:elasticsearch-rest-client这个坐标从maven内置的中央仓库找到一个版本号为${elasticsearch.version}的elasticsearch客户端组件。需要说明的是,elasticsearch-rest-client表征会引入一个低版本的搜索服务器的客户端,这里低版本的搜索服务器的客户端允许通过超文本传输协议(hypertext transfer protocol,http)请求并与es组件通信,也可以与所有的es版本兼容,并且,其应用程序接口(application programming interface,api)本身不负责数据的编码解码,需要用户去编码解码。
[0079]
示例性的,在《dependency》与《/dependency》之间添加这一组结构:《groupid》org.elasticsearch.client《/groupid》《artifactid》elasticsearch-rest-high-level-client《/artifactid》《version》${elasticsearch.version}《/version》表征新建的java项目会根据groupid:org.elasticsearch.client,artifactid:elasticsearch-rest-high-level-client这个坐标从maven内置的中央仓库找到一个版本号为${elasticsearch.version}的elasticsearch客户端组件。需要说明的是,elasticsearch-rest-client表征会引入一个高版本的搜索服务器的客户端,该高版本的搜索服务器的客户端可以对请求与响应数据包进行编码解码。需要说明的是,可以在新建的java中同时添加低版本的搜索服务器客户端的组件,又可以添加高版本的搜索服务器客户端的组件,表征当前电子设备即可以具备低版本的搜索服务器客户端的组件的功能,又具有高版本的搜索服务器客户端的组件的功能。
[0080]
示例性的,在《exclusions》与《exclusions》之间添加这一组结构:《exclusion》《groupid》org.elasticsearch《/groupid》《artifactid》elasticsearch《/artifactid》《/
exclusion》表征为新建的java项目重新配置对es项目的依赖。
[0081]
这里,在properties文件中配置搜索服务器es相关参数,例如,配置搜索服务器集群的名称为elasticsearch,即在properties文件添加elasticsearch.cluster-name=elasticsearch;配置搜索服务器的用户名为elastic,即在properties文件中添加elasticsearch.username=elastic;配置搜索服务器的密码为空,即在properties文件中添加elasticsearch.password=;配置搜索服务器的约束为http,即在properties文件中添加elasticsearch.schema=http;配置搜索服务器的主机名为本机,即在properties文件中添加elasticsearch.host=127.0.0.1;配置搜索服务器的端口号为9200,即在properties文件中添加elasticsearch.port=9200;配置搜索服务器每次最大能并行接收的请求数量为10个,即在properties文件中添加elasticsearch.max-connect-perroute=10;配置搜索服务器每次最大连接数量为50,即在properties文件中添加elasticsearch.max-connect-total=50;配置搜索服务器连接超时时间为1000毫秒,即在properties文件中添加elasticsearch.connect-timeout-millis=1000;配置搜索服务器套接字(socket)最大超时时间为30000毫秒,即在properties文件中添加elasticsearch.socket-timeout-millis=30000;配置搜索服务器最大反馈时长为500毫秒,即在properties文件中添加elasticsearch.connection-request-timeout-millis=500。
[0082]
这里,在新建的java项目中增加elasticsearchconfig.java文件,以读入es的相关参数,具体的:首先,引入@configuration用于定义配置类,并新建一个elasticsearchconfig的公有类;其次,引入@value从properties文件中读取相关参数的值,例如,读取搜索服务器的密码字段采用的是“@value("${elasticsearch.password}")private string password”;一般来说,密码的值是字符串类型,因此在读取到密码字段后,定义一个私有类型的字符串变量password方便后续的调用。需要说明的是,读取搜索服务器的其他相关参数时依然采用@value去读取,并定义一个变量去调用。再次,引入@bean用于指示当前方法会产生一个bean,并且交给spring boot的容器管理;需要说明的是,bean可以通过反射来具象化java中的方法和属性以便调用。最后,定义公有的getresthighlevelclient方法去配置搜索服务器客户端的相关参数,具体的,先定义一个新的final类型的凭证注册器对象credentialsprovider用于鉴定用户的身份,并从properties文件中拿到相关参数信息进行注册,即“final credentialsprovider credentialsprovider=new basiccredentialsprovider();credentialsprovider.setcredentials(authscope.any,newusernamepasswordcredentials(username,password))”。然后,采用restclientbuilder提供了客户端自定义设置的方法去设置搜索服务器的约束、集群名称、主机名、端口号、每次最大能并行接收的请求数量、每次最大连接数量、连接超时时间、socket最大超时时间、最大反馈时长,即“final restclientbuilder builder=restclient.builder(new httphost(host,port,schema));builder.setrequestconfigcallback(requestconfigbuilder-》{requestconfigbuilder.setconnecttimeout(connecttimeoutmillis));requestconfigbuilder.setsockettimeout(sockettimeoutmillis);requestconfigbuilder.setconnectionrequesttimeout(connectionrequesttimeoutmillis);}builder.sethttpclientconfigcallback
(httpclientbuilder-》{httpclientbuilder.setmaxconntotal(maxconnecttotal));httpclientbuilder.setmaxconnperroute(maxconnectperroute);}”。需要说明的是,在设置好properties文件中相关参数后,对于其他未被定义的相关参数,将采用默认参数即“httpclientbuilder.setdefaultcredentialsprovider(credentialsprovider);”最后,采用bulid函数将配置好参数进行配置,返回相应结果。如此,完成了对环境搭建。
[0083]
本技术实施例中,当环境搭建成功后,终端设备会通过终端设备中的应用程序调用与业务数据对应的定时任务线程,将终端设备中的业务数据库中的业务数据发送至搜索服务器对应的数据库。如此,有效的解决了相关技术中在进行全站数据检索时,无法查询到终端设备对应的数据库中的所有业务表,只能针对部分业务表,从而忽略其他业务表内的相关信息,导致检索结果不准确,进一步影响到用户的判断,降低用户体验度的问题,实现对站内不同类型业务数据的所有业务表进行检索。
[0084]
示例性的,以办公系统为例,下表示出了在es中存储的待办事项数据的数据结构。
[0085][0086][0087]
表1预先定义的办公系统的待办事项数据在es中存储时的数据结构
[0088]
需要说明的是,es中存储的数据结构是索引形式,因此,将办公系统的待办事项数据同样也是以索引形式存储,下述结构是预先定义的办公系统的待办事项数据在es中的数据结构。其中,to_do_proces_stask_index表征的是进程任务索引,mappings表征的是映射,to_do_proces_stask_type表征的是进程的任务类型,properties表征的是性能数据。
[0089][0090][0091]
这里,以上述办公系统的待办事项数据为例,终端设备会通过终端设备中的应用程序调用与办公系统对应的定时任务线程,将待办事项数据发送至搜索服务器对应的数据库中。需要说明的是,待办事项数据包括加密后的待办事项数据以及未加密的待办事项数据。本技术提供一种将待办事项数据的存储到搜索服务器es对应的数据库方法:todoprocesstasksyn。终端设备创建一个公有的todoprocesstasksyn方法辅助终端设备去完成将待办事项数据给搜索服务器中的数据库。为了防止在实施todoprocesstasksyn方法时出现错误,该方法继承exception类,用于抛出发送过程中可能出现的异常信息。exception类是预设的用于捕获异常的类。该方法先将待办事项数据封装成es对应结构;其中,针对上述的办公系统的待办事项数据,本技术以待办处理人为唯一标识,若当前待发送的业务数据中的待办处理人为空,终端设备会根据预设的抢办表,重新组装处理人集合,其中,抢办表包括待办处理人为空需要重新组装处理人的表。其次,终端设备将待存储至es对应的数据库中的待办事项数据存储至es的数据库中并记录时间以便下一次的发送。
[0092]
具体代码如下:
[0093][0094]
步骤502、获得在客户端呈现的搜索服务器对应的搜索界面中,输入检索信息进行检索的检索请求。
[0095]
其中,检索信息具有属性信息。
[0096]
这里,终端设备中部署有客户端,若终端设备检测针对搜索界面的客户端的启动请求,终端设备响应该启动请求并启动客户端,进而终端设备在显示界面中呈现启动的客户端,客户端中显示有搜索界面。这里,启动请求可以是用户针对终端设备呈现的客户端对应的图标进行点击操作后,终端设备生成的启动请求。当然,终端设备还可以基于其他方式生成上述启动请求,例如,用户向终端设备发出语音消息如打开客户端的消息,终端设备接收到打开客户端的消息后,生成的启动请求,本技术对电子设备生成启动请求的方式不做具体限定。
[0097]
本技术实施例中,客户端是部署在终端设备上,为客户提供本地服务的程序。终端设备获得在终端设备的客户端呈现的搜索服务器对应的搜索界面中,输入检索信息进行检索的检索请求。这里,搜索界面可以以平铺式进行显示,还可以以小窗口横截面的形式进行显示。
[0098]
需要说明的是,终端设备与搜索服务器建立有网络连接,终端设备通过客户端获得针对检索信息的检索请求,并通过客户端将加密的检索信息或不加密的检索信息发送至搜索服务器,服务器根据检索请求中包含的检索信息与自身的数据库进行匹配操作,得到匹配结果,搜索服务器将匹配结果发送给终端设备,终端设备会得到搜索服务器反馈的结果。
[0099]
步骤503、若属性信息对应的检索方式为加密检索方式,获得检索信息对应的加密
后的检索信息。
[0100]
步骤504、基于加密后的检索信息在搜索服务器对应的数据库中进行检索,得到检索结果,并输出检索结果。
[0101]
本技术实施例中,终端设备会通过搜索服务器提供的应用程序接口(application programming interface,api),对检索信息进行检索操作,并获取相应的结果。示例性的,本技术提供一种查询业务数据的api方法:gettodoprocesstasklist,具体实现代码如下:
[0102]
图7是本技术提供的一种检索结果图,用户在终端设备中部署的客户端的搜索界面框中例如笔记本中浏览器的搜索框,输入目标链接地址http://localhost:9100/后,呈现检索界面,并在701的位置处输入检索内容即检索信息,终端设备与搜索服务器进行交互,最终在702的位置呈现检索结果。
[0103]
本技术实施例中,步骤501中对终端设备中的业务数据库中的业务数据进行加密之前,所述信息检索方法还包括如下步骤:
[0104]
通过应用程序调用与业务类型对应的定时任务线程,将业务数据库中的业务数据转换成符合搜索服务器的数据存储结构的业务数据。
[0105]
本技术提供了一种将业务数据例如办公系统的待办事项数据转换为符合搜索服务器例如es的数据存储结构的业务数据的方法gettodoprocesstask。如图8所示,是将办公系统的待办事项数据转换为es的数据存储结构的示意图。gettodoprocesstask方法将办公系统的待办事项数据相应的字段进行设置,这里,设置包括对待办事项数据类型的设置。其中,在进行字段值的设置时,若业务数据的属性敏感业务数据的字段,终端设备就会将数据调用相应的方法将敏感字段转换成密文字段。
[0106]
具体代码如下:
[0107][0108]
本技术实施例中,不同系统和网站的站内检索功能展示的不同,如果一次检索需要展示全部业务分类数据在一个列表中,则需要在搜索服务器中建立能够符合要求的数据结构。如此,将不同类型的业务数据转换为搜索服务器支持的数据结构,以终端数据中所有业务数据的为基础,保证检索范围的最大化。
[0109]
本技术实施例中,通过业务数据对应的定时任务程序,将不同的业务数据清洗到搜索服务器支持的数据结构中,实现了一次检索展示全部业务分类数据需求。
[0110]
需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。
[0111]
图9是本技术提供的信息检索方法的一个实现流程示意图,该信息检索方法可以应用于图3所示的网络架构;如图9所示,这里,以信息检索方法应用于搜索服务器302为例进行说明,该方法包括以下步骤:
[0112]
步骤901、接收终端设备发送的终端设备的业务数据库中的业务数据。
[0113]
其中,业务数据具有属性信息。
[0114]
本技术实施例中,搜索服务器接收终端设备发送来的业务数据。若业务数据的属性信息表征终端设备发送来的业务数据是敏感类型的数据,那么,搜索服务器就会将终端设备发送来的业务数据进行加密,并将加密后的信息存储在自身的数据库中。若业务数据的属性信息表征终端设备发送来的业务数据是非敏感类型的,那么,搜索服务器就不会将终端设备发送来的业务数据进行加密,而是直接将接收到的信息存储在自身的数据库中。
[0115]
步骤902、通过搜索服务器集成的分词器对业务数据进行分词处理,得到第一分词结果。
[0116]
本技术实施例中,搜索服务器通过搜索服务器集成的分词器对业务数据进行分词处理,得到第一分词结果。以搜索服务器为es为例,图10利用es中集成的ik分词器是对业务数据“苏州是个好地方”这一字段的分词效果图。
[0117]
需要说明的是,es中集成的ik分词器每次读取到内存中需要分词的内容默认大小
为4k,如果需要分词的密文内容大小超过4k,则解密时,会遇到读取边界问题,导致解密有误,进而导致分词有误,影响数据检索。如遇到这样的问题,则尽量保证分词器分词之前进行解密时,一次读取整个字段内容。因此,本技术提供一种在分词之前的对加密的数据进行解密的方法。这里,是在ik分词器在进行数据分词之前,即在向搜索服务器的缓冲区填充数据时,将加密的数据进行解密。
[0118]
具体实现代码如下:
[0119][0120]
本技术实施例中,在向搜索服务器的缓冲区填充数据时即在ik分词之前对加密的数据进行解密,保证了分词内容为明文数据,从而生成的倒序索引列表也为明文内容。
[0121]
步骤903、基于第一分词结果,生成倒序索引列表。
[0122]
其中,倒序索引列表记录有第一分词结果中的分词、分词所在的文档以及分词在文档中出现的位置。
[0123]
步骤904、获得针对检索信息的检索请求。
[0124]
其中,检索信息具有属性信息。
[0125]
步骤905、若属性信息对应的检索方式为加密检索方式,获得检索信息对应的加密后的检索信息。
[0126]
需要说明的是,步骤901至步骤903可以在步骤904至905之前执行;当然,步骤901至步骤903也可以在步骤904至步骤905之后执行。本技术不做任何具体的限定,只要搜索服务器在进行检索之前,与检索信息相关的数据被存储到数据库中即可。
[0127]
步骤906、基于加密后的检索信息在搜索服务器对应的数据库中进行检索,得到检索结果。
[0128]
本技术实施例中,当搜索服务器从自身的数据库中检索到与检索信息相关的信息后,搜索数据库就会将检索结果反馈给终端设备,并且在终端设备上呈现。具体实施过程中,在向终端设备发送检索结果时,搜索服务器对检索结果进行封装发送,本技术提供了一种封装检索结果的方法:getsearchrequest。具体实现代码如下:
[0129][0130][0131]
需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参
照其它实施例中的描述,此处不再赘述。
[0132]
本技术实施例中,步骤906中基于加密后的检索信息在搜索服务器对应的数据库中进行检索,得到检索结果,可以通过如下步骤实现:
[0133]
基于加密后的检索信息和倒序索引列表,在搜索服务器对应的数据库中进行检索,得到检索结果。
[0134]
本技术实施例中,搜索服务器在接收到终端设备发送来的加密检索信息之后,搜索服务器根据加密检索信息先跟倒序索引列表进行匹配,得带匹配信息之后,搜索服务器根据倒序索引列表中记录有分词与文档的关系,从搜索服务器对应的数据库查询到相应的加密数据,搜索服务器对查询到的加密数据进行解密,并将解密的结果反馈给用户。
[0135]
需要说明的是,基于加密后的检索信息和倒序索引列表,在搜索服务器对应的数据库中进行检索,得到检索结果,可以通过如下步骤实现:
[0136]
第一步、通过分词器对加密后的检索信息进行解密,得到解密后的检索信息。
[0137]
本技术实施例中,搜索服务器在收到终端设备发送来的加密的检索信息之后,搜索服务器会通过分词器对加密后的检索信息进行解密,得到解密后的检索信息。
[0138]
第二步、通过分词器对解密后的检索信息进行分词处理,得到第二分词结果。
[0139]
本技术实施例中,搜索服务器在对加密的检索信息进行解密之后,分词器对解密后的检索信息进行分词处理,得到第二分词结果。
[0140]
第三步、基于第二分词结果和倒序索引列表,在搜索服务器对应的数据库中进行检索,得到检索结果。
[0141]
本技术实施例中,搜索服务器第二分词结果与倒序索引列表进行匹配,得到匹配信息之后,搜索服务器根据倒序索引列表中记录有分词与文档的关系,从搜索服务器对应的数据库查询到相应的加密数据,搜索服务器对查询到的加密数据进行解密,并将解密的结果反馈给用户。
[0142]
需要说明的是,当搜索服务器将检索结果反馈给终端设备后,终端设备获取被封装的检索结果,本技术提供一种获取被封装的检索结果的方法,具体代码如下:
[0143][0144]
当终端设备接收到检索结果之后,终端设备需要将检索结果转换为页面能够展示
的数据,本技术提供将检索结果转换为页面能够响应的对象的方法formatresult,具体代码如下:
[0145][0146]
需要说明的是,当搜索服务器反馈给终端设备的结果,终端设备的客户端的搜索界面的相应位置无法显示全所有的结果,搜索服务器就会将反馈给终端设备的结果进行一个分页显示的操作。
[0147]
基于前述内容,本技术提供的一种将业务数据同步到搜索服务器例如elasticsearch的流程示意图,如图11所示,电子设备执行步骤1101至步骤1109以实现将业务数据同步到搜索服务器中。步骤1101、电子设备从业务数据库中查询待同步的业务数据。步骤1102、电子设备对敏感业务数据进行加密处理。步骤1103、电子设备将加密后的业务数据以及未加密的业务数据封装成搜索服务器对应的数据结构。步骤1104、电子设备调用搜索服务器中相应的接口,并将封装后的数据发送给搜索服务器。步骤1105、搜索服务器接收电子设备发送来的业务数据。步骤1106、搜索服务器判断电子设备发送来的业务数据是否为加密的敏感业务数据,若业务数据是加密的敏感业务数据,则执行步骤1107,否则执行步骤1108。步骤1107、搜索服务器将加密的敏感业务数据,先解密为明文,后使用解密后的明文生成第一倒排索引。步骤1108、搜索服务器使用未加密的业务数据生成第二倒排索引。步骤1109、搜索服务器将终端设备发送来的业务数据、第一倒排索引以及第二倒排索引存储
到搜索服务器对应的数据库中。
[0148]
图12是本技术提供的一种站内全文检索流程图。步骤1201、用户在页面站内搜索框输入检索关键词。步骤1202、电子设备调用后端应用服务程序查询接口。步骤1203、电子设备基于检索关键词判断用户想要获取的信息是否为加密的业务数据,若是用户想要获取的信息是加密的业务数据,执行步骤1204;否则,执行步骤1205。步骤1204、电子设备将检索内容加密成密文并且发送给搜索服务器,搜索服务器调用检索接口,进一步的执行步骤1206。步骤1205、电子设备传入明文的检索内容并且发送给搜索服务器,搜索服务器调用检索接口,进一步的执行步骤1207。步骤1206、搜索服务器将加密的检索内容进行解密并分词,根据分词的结果从搜索服务器对应的数据库中检索,返回检索结果,进一步的执行步骤1208。步骤1207、搜索服务器将未加密的检索内容进行分词,根据分词的结果从搜索服务器对应的数据库中检索,返回检索结果,进一步的执行步骤1208。步骤1208、电子设备接收到检索结果,并将加密的业务数据解密为明文,在页面上呈现检索结果。
[0149]
本技术提供一种信息检索装置,该信息检索装置用于实施图4、5、9对应的所提供的一种信息检索方法中,参照图13所示,该信息检索装置13包括:
[0150]
获取单元1301,用于获得针对检索信息的检索请求。
[0151]
其中,检索信息具有属性信息。
[0152]
处理单元1302,用于若属性信息对应的检索方式为加密检索方式,获得检索信息对应的加密后的检索信息。
[0153]
处理单元1302,用于基于加密后的检索信息在搜索服务器对应的数据库中进行检索,得到检索结果,并输出检索结果。
[0154]
在本技术的其他实施例中,信息检索装置为终端设置,处理单元1302,还用于通过终端设备中的应用程序调用与业务数据对应的定时任务线程,对终端设备中的业务数据库中的业务数据进行加密,并将加密后的业务数据发送至搜索服务器对应的数据库;其中,不同业务数据对应的定时任务线程不同,且各个定时任务线程的调用周期相同,业务数据具有属性信息。
[0155]
在本技术的其他实施例中,信息检索装置为终端设置,处理单元1302,还用于通过应用程序调用与业务数据对应的定时任务线程,将业务数据库中的业务数据转换成符合搜索服务器的数据存储结构的业务数据。
[0156]
在本技术的其他实施例中,信息检索装置为搜索服务器,获取单元1301,还用于接收终端设备发送的终端设备的业务数据库中的业务数据,其中,业务数据具有属性信息;
[0157]
处理单元1302,还用于通过搜索服务器集成的分词器对业务数据进行分词处理,得到第一分词结果;
[0158]
处理单元1302,还用于基于第一分词结果,生成倒序索引列表,其中,倒序索引列表记录有第一分词结果中的分词、分词所在的文档以及分词在文档中出现的位置。
[0159]
在本技术的其他实施例中,信息检索装置为搜索服务器,获取单元1301,还用于基于加密后的检索信息和倒序索引列表,在搜索服务器对应的数据库中进行检索,得到检索结果。
[0160]
在本技术的其他实施例中,信息检索装置为搜索服务器,获取单元1301,还用于通过分词器对加密后的检索信息进行解密,得到解密后的检索信息;
[0161]
通过分词器对解密后的检索信息进行分词处理,得到第二分词结果;
[0162]
基于第二分词结果和倒序索引列表,在搜索服务器对应的数据库中进行检索,得到检索结果。
[0163]
在本技术的其他实施例中,信息检索装置为终端设置,获取单元1301,还用于获得在客户端呈现的搜索服务器对应的搜索界面中,输入检索信息进行检索的检索请求。
[0164]
需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。
[0165]
本技术提供一种电子设备,该电子设备可以实施图4、5、9所提供的一种信息检索方法中,参照图14所示,该电子设备14包括:
[0166]
存储器1401,用于存储可执行指令;
[0167]
处理器1402,用于执行存储器中存储的可执行指令时,实现如图4、5、9所提供的一种信息检索方法的步骤。
[0168]
作为示例,处理器可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
[0169]
本技术提供一种计算机可读存储介质,该计算机可读存储介质存储有一个或者多个程序,该一个或者多个程序可被一个或者多个处理器执行,以实现如图4、5、9所提供的信息检索方法中的实现过程,此处不再赘述。
[0170]
这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本技术存储介质和设备实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
[0171]
需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。
[0172]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
[0173]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0174]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0175]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计
算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0176]
以上所述,仅为本技术的较佳实施例而已,并非用于限定本技术的保护范围。
技术特征:1.一种信息检索方法,其特征在于,应用于电子设备,所述方法包括:获得针对检索信息的检索请求,其中,所述检索信息具有属性信息;若所述属性信息对应的检索方式为加密检索方式,获得所述检索信息对应的加密后的检索信息;基于加密后的检索信息在搜索服务器对应的数据库中进行检索,得到检索结果,并输出所述检索结果。2.根据权利要求1所述的信息检索方法,其特征在于,所述电子设备为终端设备,所述方法还包括:通过所述终端设备中的应用程序调用与业务数据对应的定时任务线程,对所述终端设备中的业务数据库中的所述业务数据进行加密,并将加密后的业务数据发送至所述搜索服务器对应的数据库;其中,不同业务数据对应的定时任务线程不同,且各个定时任务线程的调用周期相同,所述业务数据具有所述属性信息。3.根据权利要求2所述的信息检索方法,其特征在于,所述对所述终端设备中的业务数据库中的所述业务数据进行加密之前,所述方法还包括:通过所述应用程序调用所述与所述业务数据对应的定时任务线程,将所述业务数据库中的业务数据转换成符合所述搜索服务器的数据存储结构的业务数据。4.根据权利要求1所述的信息检索方法,其特征在于,所述电子设备为所述搜索服务器,所述基于加密后的检索信息在搜索服务器对应的数据库中进行检索,得到检索结果之前,所述方法包括:接收终端设备发送的所述终端设备的业务数据库中的业务数据,其中,所述业务数据具有所述属性信息;通过所述搜索服务器集成的分词器对所述业务数据进行分词处理,得到第一分词结果;基于所述第一分词结果,生成倒序索引列表,其中,所述倒序索引列表记录有所述第一分词结果中的分词、所述分词所在的文档以及所述分词在所述文档中出现的位置。5.根据权利要求4所述的信息检索方法,其特征在于,所述基于加密后的检索信息在搜索服务器对应的数据库中进行检索,得到检索结果,包括:基于所述加密后的检索信息和所述倒序索引列表,在所述搜索服务器对应的数据库中进行检索,得到所述检索结果。6.根据权利要求5所述的信息检索方法,其特征在于,所述基于加密后的检索信息和所述倒序索引列表,在所述搜索服务器对应的数据库中进行检索,得到所述检索结果,包括:通过所述分词器对所述加密后的检索信息进行解密,得到解密后的检索信息;通过所述分词器对所述解密后的检索信息进行分词处理,得到第二分词结果;基于所述第二分词结果和所述倒序索引列表,在所述搜索服务器对应的数据库中进行检索,得到所述检索结果。7.根据权利要求1所述的信息检索方法,其特征在于,所述电子设备为终端设备,所述获得针对检索信息的检索请求,包括:获得在客户端呈现的所述搜索服务器对应的搜索界面中,输入所述检索信息进行检索
的检索请求。8.一种信息检索装置,其特征在于,所述信息检索装置包括:获取单元,用于获得针对检索信息的检索请求,其中,所述检索信息具有属性信息;处理单元,还用于若所述属性信息对应的检索方式为加密检索方式,获得所述检索信息对应的加密后的检索信息;处理单元,用于基于加密后的检索信息在搜索服务器对应的数据库中进行检索,得到检索结果,并输出所述检索结果。9.一种电子设备,其特征在于,所述电子设备包括:存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至7任一项所述的信息检索方法。10.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至7中任一项所述的信息检索方法。
技术总结本申请公开了一种信息检索方法、信息检索装置、电子设备和计算机可读存储介质,方法包括获得针对检索信息的检索请求;其中,检索信息具有属性信息;若属性信息对应的检索方式为加密检索方式,获得检索信息对应的加密后的检索信息;基于加密后的检索信息在搜索服务器对应的数据库中进行检索,得到检索结果,并输出检索结果。如此,解决了相关技术中当用户想要检索的数据是被加密的数据时,站内搜索引擎因为无法解密数据而不能做出回应,导致用户无法检索到需要的数据的问题,确保用户的检索不受加密的限制,提高搜索服务器返回的检索结果的准确性。准确性。准确性。
技术研发人员:王冲
受保护的技术使用者:中国移动通信集团有限公司
技术研发日:2021.06.09
技术公布日:2022/12/8