本发明涉及通信,尤其涉及一种适用于多种搜索策略的搜索方法、装置、设备及介质。
背景技术:
1、随着计算机技术的发展,对搜索服务的需求暴增。目前对搜索结果进行缓存,以提高搜索请求的效率。目前的每个搜索请求采用固定的搜索策略,无法满足个性化的搜索需求;目前的搜索结果的缓存方式是针对每个搜索策略开辟独立的存储资源,导致占用大量的缓存空间。
技术实现思路
1、基于此,有必要针对目前的每个搜索请求采用固定的搜索策略,无法满足个性化的搜索需求,而搜索结果的缓存方式是针对每个搜索策略开辟独立的存储资源,导致占用大量的缓存空间的技术问题,提出了一种适用于多种搜索策略的搜索方法、装置、设备及介质。
2、本技术提出了一种适用于多种搜索策略的搜索方法,所述方法包括:
3、获取搜索请求,并根据所述搜索请求确定目标搜索策略和目标请求内容,将所述目标搜索策略和所述目标请求内容进行拼接,得到拼接数据;
4、根据所述拼接数据,从预设的一级缓存中查找结果标识数组,得到第一查找结果;
5、若所述第一查找结果为成功,则对所述第一查找结果对应的所述结果标识数组中的不带未存储标记的各个结果标识从预设的二级缓存中获取各个结果简介数据,且,对所述第一查找结果对应的所述结果标识数组中的带所述未存储标记的各个结果标识从预设的业务数据库中获取各个结果简介数据,得到目标数据;
6、若所述第一查找结果为失败,根据所述拼接数据,调用预设的搜索引擎从所述业务数据库中搜索各个所述结果简介数据,得到所述目标数据,根据所述拼接数据和所述目标数据更新所述一级缓存和所述二级缓存;
7、将所述目标数据发送给所述搜索请求对应的目标调用对象。
8、进一步地,所述将所述目标数据发送给所述搜索请求对应的目标调用对象的步骤,包括:
9、将所述搜索请求携带的请求标识,更新到所述一级缓存中的与所述拼接数据对应的占用数据;
10、将所述目标数据发送给所述搜索请求对应的所述目标调用对象;
11、获取所述目标调用对象根据所述目标数据发送的下载完成信号;
12、响应所述下载完成信号,将所述下载完成信号携带的所述请求标识,从所述一级缓存中的与所述拼接数据对应的所述占用数据中进行删除。
13、进一步地,所述将所述目标数据发送给所述搜索请求对应的目标调用对象的步骤之后,还包括:
14、获取预设时长内的搜索请求集;
15、根据所述搜索请求集获取结果点击数据集;
16、对所述结果点击数据集,按搜索策略进行划分,得到各个单策略点击数据集;
17、基于同一个所述搜索策略对应的策略质量评估配置及所述单策略点击数据集进行策略质量评估,得到评估结果;
18、判断每个所述评估结果是否满足预设结果配置;
19、将不满足所述预设结果配置的每个所述评估结果对应的所述搜索策略作为待删除策略;
20、根据所述待删除策略,从所述一级缓存中查找每个所述结果标识数组,得到待评估数组;
21、将所述一级缓存中的所述占用数据为空的每个所述待评估数组作为第一删除数组;
22、将所述待删除策略及所述第一删除数组对应的关联数据从所述一级缓存中删除;
23、分别将所述二级缓存中的与所述第一删除数组中的每个结果标识对应的引用次数减1;
24、判断所述二级缓存中是否存在所述引用次数为0的所述结果标识;
25、若存在,则将所述引用次数为0的每个所述结果标识对应的所述结果简介数据从所述二级缓存中删除。
26、进一步地,所述根据所述拼接数据和所述目标数据更新所述一级缓存和所述二级缓存的步骤,还包括:
27、判断所述目标搜索策略是否位于预设的热门策略列表;
28、若是,则根据所述拼接数据和所述目标数据更新所述一级缓存和所述二级缓存;
29、若否,则根据所述拼接数据和所述目标数据更新所述一级缓存,并从所述目标数据中找出不位于所述二级缓存的每个结果标识,得到第一标识,对所述一级缓存中的与所述第一标识对应的结果标识打上所述未存储标记,从所述目标数据中找出位于所述二级缓存的每个所述结果标识,得到第二标识,将所述二级缓存中的与所述第二标识对应的引用次数增加1。
30、进一步地,所述根据所述拼接数据和所述目标数据更新所述一级缓存和所述二级缓存的步骤,包括:
31、将所述目标数据中的各个所述结果标识进行组合,得到目标标识集;
32、对所述一级缓存中的与所述目标标识集对应的所有结果标识的所述未存储标记进行删除处理,并将所述拼接数据和所述目标标识集作为关联数据添加到所述一级缓存;
33、将所述目标标识集中的每个所述结果标识,在所述二级缓存进行查找,得到第二查找结果;
34、将所述第二查找结果为成功的每个所述结果标识作为已有标识,将所述二级缓存中的与所述已有标识对应的所述引用次数增加1;
35、将所述第二查找结果为失败的每个所述结果标识作为新增标识,将所述新增标识对应的所述结果简介数据添加到所述二级缓存,并根据所述一级缓存,更新所述二级缓存中的与所述新增标识对应的所述引用次数。
36、进一步地,所述根据所述拼接数据和所述目标数据更新所述一级缓存和所述二级缓存的步骤之后,还包括:
37、获取缓存清除请求;
38、响应所述缓存清除请求,根据预设的缓存清除配置,从所述一级缓存中查找关联数据,作为待处理关联数据;
39、将所述一级缓存中的所述占用数据为空的每个所述待处理关联数据作为待删除关联数据;
40、将所述一级缓存中的与所述待删除关联数据对应的关联数据进行删除处理,将所述二级缓存中的与所述待删除关联数据的每个所述结果标识对应的引用次数减1;
41、判断所述二级缓存中是否存在所述引用次数为0的所述结果标识;
42、若存在,则将所述待删除关联数据中的所述引用次数为0的每个所述结果标识对应的所述结果简介数据从所述二级缓存中删除;
43、所述对所述第一查找结果对应的所述结果标识数组中的不带未存储标记的各个结果标识从预设的二级缓存中获取各个结果简介数据,且,对所述第一查找结果对应的所述结果标识数组中的带所述未存储标记的各个结果标识从预设的业务数据库中获取各个结果简介数据,得到目标数据的步骤,包括:
44、将所述第一查找结果对应的所述结果标识数组作为目标数组;
45、将所述目标数组中的带所述未存储标记的各个所述结果标识作为未存储简介集,并将所述目标数组中的不带所述未存储标记的各个所述结果标识作为已存储简介集;
46、根据所述已存储简介集,从所述二级缓存中获取各个所述结果简介数据,得到第一简介数据集;
47、根据所述未存储简介集,从所述业务数据库中查找各个所述结果简介数据,得到第二简介数据集;
48、将所述第一简介数据集和所述第二简介数据集进行合集处理,得到所述目标数据。
49、进一步地,所述获取缓存清除请求的步骤之前,还包括:
50、按预设时间间隔获取所述二级缓存对应的目标数据量;
51、若所述目标数据量大于预设数据量阈值,则生成所述缓存清除请求。
52、本技术还提出了一种适用于多种搜索策略的搜索装置,所述装置包括:
53、请求获取模块,用于获取搜索请求,并根据所述搜索请求确定目标搜索策略和目标请求内容,将所述目标搜索策略和所述目标请求内容进行拼接,得到拼接数据;
54、第一查找结果确定模块,用于根据所述拼接数据,从预设的一级缓存中查找结果标识数组,得到第一查找结果;
55、第一处理模块,用于若所述第一查找结果为成功,则对所述第一查找结果对应的所述结果标识数组中的不带未存储标记的各个结果标识从预设的二级缓存中获取各个结果简介数据,且,对所述第一查找结果对应的所述结果标识数组中的带所述未存储标记的各个结果标识从预设的业务数据库中获取各个结果简介数据,得到目标数据;
56、第二处理模块,用于若所述第一查找结果为失败,根据所述拼接数据,调用预设的搜索引擎从所述业务数据库中搜索各个所述结果简介数据,得到所述目标数据,根据所述拼接数据和所述目标数据更新所述一级缓存和所述二级缓存;
57、数据反馈模块,用于将所述目标数据发送给所述搜索请求对应的目标调用对象。
58、本技术还提出了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:
59、获取搜索请求,并根据所述搜索请求确定目标搜索策略和目标请求内容,将所述目标搜索策略和所述目标请求内容进行拼接,得到拼接数据;
60、根据所述拼接数据,从预设的一级缓存中查找结果标识数组,得到第一查找结果;
61、若所述第一查找结果为成功,则对所述第一查找结果对应的所述结果标识数组中的不带未存储标记的各个结果标识从预设的二级缓存中获取各个结果简介数据,且,对所述第一查找结果对应的所述结果标识数组中的带所述未存储标记的各个结果标识从预设的业务数据库中获取各个结果简介数据,得到目标数据;
62、若所述第一查找结果为失败,根据所述拼接数据,调用预设的搜索引擎从所述业务数据库中搜索各个所述结果简介数据,得到所述目标数据,根据所述拼接数据和所述目标数据更新所述一级缓存和所述二级缓存;
63、将所述目标数据发送给所述搜索请求对应的目标调用对象。
64、本技术还提出了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:
65、获取搜索请求,并根据所述搜索请求确定目标搜索策略和目标请求内容,将所述目标搜索策略和所述目标请求内容进行拼接,得到拼接数据;
66、根据所述拼接数据,从预设的一级缓存中查找结果标识数组,得到第一查找结果;
67、若所述第一查找结果为成功,则对所述第一查找结果对应的所述结果标识数组中的不带未存储标记的各个结果标识从预设的二级缓存中获取各个结果简介数据,且,对所述第一查找结果对应的所述结果标识数组中的带所述未存储标记的各个结果标识从预设的业务数据库中获取各个结果简介数据,得到目标数据;
68、若所述第一查找结果为失败,根据所述拼接数据,调用预设的搜索引擎从所述业务数据库中搜索各个所述结果简介数据,得到所述目标数据,根据所述拼接数据和所述目标数据更新所述一级缓存和所述二级缓存;
69、将所述目标数据发送给所述搜索请求对应的目标调用对象。
70、本技术的适用于多种搜索策略的搜索方法,通过将所述目标搜索策略和所述目标请求内容进行拼接得到的拼接数据作为搜索的依据,使目标请求能个性化的指定搜索策略,而最终搜索得到的目标数据是针对目标搜索策略的,从而满足了满足个性化的搜索需求;通过将所述目标搜索策略和所述目标请求内容进行拼接作为搜索及缓存的依据,针对所有搜索策略设置一个缓存空间,降低了缓存占用的存储资源;通过将结果标识数组、结果简介数据进行两级缓存,实现了结果简介数据的复用,使多个结果标识数组交叉的结果简介数据只保留一份,减少了二级缓存的存储资源,进一步降低了整个缓存占用的存储资源;通过一级缓存只存储结果标识数组,减少了数据量,提高了判断是否提前缓存的效率,而且首先查找一级缓存,在查找成功时搜索二级缓存,在查找失败时调用搜索引擎,在减少缓存的数据的情况下,快速的确定获取结果简介数据的方式,提高了搜索效率。