一种搜索结果缓存方法及装置、搜索方法及装置与流程

文档序号:12305470阅读:250来源:国知局
一种搜索结果缓存方法及装置、搜索方法及装置与流程

本发明涉及软件技术领域,特别是涉及一种搜索结果缓存方法及装置、搜索方法及装置。



背景技术:

随着互联网技术的不断发展,各大网站的用户访问量呈爆发式增长,为了解决大规模数据访问带来的网络瓶颈问题,缓存技术应运而生。例如,每天都有大量用户对视频文件、音频文件、图像文件等文件进行搜索。为了便于用户快速、稳定的获得搜索结果,一般需要对搜索量较多的搜索记录进行缓存,搜索记录一般包括:搜索词和搜索结果,搜索结果即根据搜索词搜索到的结果。

随着网络能够提供的内容越来越丰富,对于一个已缓存搜索记录的搜索词而言,其搜索结果可能会发生变化,因此,为了提高已缓存搜索结果的可靠性,缓存服务器通常需要设置缓存过期时长,在超过缓存过期时间后,缓存的搜索结果将被删除或被标记为不可用,使得无法在本地获取到该搜索结果,进而,需要重新去获取该搜索词对应的搜索结果,并缓存于本地,达到更新本地缓存的目的。目前,缓存搜索结果的方法为:将各个搜索词的搜索结果缓存相同的时间,即统一设置缓存过期时间。

但是,在现实生活中,一些搜索词的搜索量非常高,并且搜索词对应的搜索结果时常发生变化,这类搜索词可以称之为热门搜索词;一些搜索词的搜索量比较低,并且搜索词对应的搜索结果基本不变,这类搜索词可以称之为冷门搜索词。由于在搜索词对应的搜索结果更新时,缓存服务器会接收到用于更新该搜索词对应的搜索结果的更新消息,因而,缓存服务器能够频繁的接收到更新热门搜索词对应的搜索结果的更新信息;而接收到的更新冷门搜索词对应的搜索结果的更新信息较少。由于目前缓存服务器对于搜索量不同的搜索词对应的搜索结果都设置相同的缓存过期时长,通常没到缓存时间,热门搜索词对应的搜索结果就会被更新,进而,该搜索结果对应的缓存时间重新开始计时,因而本地仍然能够对该搜索结果进行有效缓存;而对于冷门搜索词对应的搜索结果可能缓存过期时间到了,也没有获得对应的更新消息,使得本地缓存的搜索结果被删除或被标识为不可用,导致本地缓存的数据不全面。



技术实现要素:

本发明实施例的目的在于提供一种搜索结果缓存方法及装置、搜索方法及装置,以使缓存的数据更全面。具体技术方案如下:

第一方面,本发明实施例提供了一种搜索结果缓存方法,所述方法包括:

获得第一类搜索词中各个搜索词在预设时长内的被搜索次数,其中,所述第一类搜索词为:已缓存搜索结果的搜索词中在所述预设时长内被搜索过的搜索词;

按照所获得的被搜索次数从大到小的顺序,依据时长由短到长的原则依次设置所述第一类搜索词中各个搜索词的搜索结果的缓存过期时长;并采用预设淘汰算法,确定是否继续缓存第二类搜索词中各个搜索词的搜索结果,其中,所述第二类搜索词为:已缓存搜索结果的搜索词中在所述预设时长内未被搜索过搜索词。

可选的,所述方法还包括:

设置所述第一类搜索词中各个搜索词的搜索结果的缓存有效时长等于该搜索词的搜索结果的缓存过期时长。

可选的,所述已缓存搜索结果的搜索词为:搜索结果已缓存于第一数据库中的搜索词;所述方法还包括:

将所述第一类搜索词中各个搜索词与该搜索词的搜索结果的缓存有效时长对应缓存至第二数据库;

将所述第一类搜索词中各个搜索词与该搜索词的搜索结果的缓存过期时长对应缓存至第三数据库。

可选的,所述按照所获得的被搜索次数从大到小的顺序,依据时长由短到长的原则依次设置所述第一类搜索词中各个搜索词的搜索结果的缓存过期时长,包括:

根据预设的分级策略,按照所获得的被搜索次数,确定所述第一类搜索词中各个搜索词的等级,其中,所述分级策略为:搜索词的被搜索次数越多,该搜索词被划分的等级越高;

按照所述第一类搜索词中各个搜索词的等级从高到低的顺序,依据时长由短到长的原则依次设置所述第一类搜索词中各个搜索词的搜索结果的缓存过期时长,其中,属于同一级别的搜索词其搜索结果的缓存过期时长相等。

第二方面,本发明实施例还提供了一种搜索方法,所述方法包括:

获得目标搜索请求,其中,所述目标搜索请求中携带目标搜索词;

判断已缓存的搜索结果中是否存在所述目标搜索词的搜索结果,其中,已缓存的搜索结果为:按照上述搜索结果方法缓存的搜索结果;

若为是,根据已缓存的搜索结果中所述目标搜索词的搜索结果,获得所述目标搜索词的最终搜索结果。

可选的,所述根据已缓存的搜索结果中所述目标搜索词的搜索结果,获得所述目标搜索词的最终搜索结果,包括:

判断目标搜索结果是否已被设置过缓存过期时长,其中,所述目标搜索结果为:已缓存搜索结果中所述目标搜索词的搜索结果;

若设置过,则获得目标缓存过期时长与预设值的第一比值,并判断所述第一比值是否大于目标缓存时长,其中,所述目标缓存过期时长为:所述目标搜索结果已被设置的缓存过期时长,所述目标缓存时长为:所述目标搜索结果的缓存时长;

如果大于,则将所述目标搜索结果确定为所述目标搜索词的最终搜索结果。

可选的,如果已缓存搜索结果中不存在所述目标搜索词的搜索结果,或者,如果所述第一比值小于或者等于所述目标缓存时长,所述方法还包括:

将所述目标搜索请求转发给搜索服务器,使得所述搜索服务器根据所述目标搜索词进行搜索获得搜索结果;

接收所述搜索服务器发送的搜索结果,并将接收的搜索结果确定为所述目标搜索词的最终搜索结果。

可选的,所述方法还包括:

缓存接收的搜索结果。

可选的,在所述目标搜索结果未被设置过缓存过期时长的情况下,所述方法还包括:

判断所述目标搜索结果是否已被设置缓存有效时长;

如果已被设置,则获得目标缓存有效时长与预设值的第二比值,并判断所述第二比值是否大于所述目标缓存时长,其中,所述目标缓存有效时长为:所述目标搜索结果已被设置的缓存有效时长;

如果大于,则将所述目标搜索结果确定为所述目标搜索词的最终搜索结果;

如果不大于,则将所述目标搜索请求转发给搜索服务器,使得所述搜索服务器根据所述目标搜索词进行搜索获得搜索结果,并接收所述搜索服务器发送的搜索结果,将接收的搜索结果确定为所述目标搜索词的最终搜索结果。

可选的,如果所述目标搜索结果未被设置缓存有效时长,所述方法还包括:

将所述目标搜索结果确定为所述目标搜索词的最终搜索结果。

第三方面,本发明实施例提供了一种搜索结果缓存装置,所述装置包括:

第一获得模块,用于获得第一类搜索词中各个搜索词在预设时长内的被搜索次数,其中,所述第一类搜索词为:已缓存搜索结果的搜索词中在所述预设时长内被搜索过的搜索词;

第一设置模块,用于按照所获得的被搜索次数从大到小的顺序,依据时长由短到长的原则依次设置所述第一类搜索词中各个搜索词的搜索结果的缓存过期时长;并采用预设淘汰算法,确定是否继续缓存第二类搜索词中各个搜索词的搜索结果,其中,所述第二类搜索词为:已缓存搜索结果的搜索词中在所述预设时长内未被搜索过搜索词。

可选的,所述装置还包括:

第二设置模块,用于设置所述第一类搜索词中各个搜索词的搜索结果的缓存有效时长等于该搜索词的搜索结果的缓存过期时长。

可选的,所述已缓存搜索结果的搜索词为:搜索结果已缓存于第一数据库中的搜索词;

所述装置还包括:

第一缓存模块,用于将所述第一类搜索词中各个搜索词与该搜索词的搜索结果的缓存有效时长对应缓存至第二数据库;

第二缓存模块,用于将所述第一类搜索词中各个搜索词与该搜索词的搜索结果的缓存过期时长对应缓存至第三数据库。

可选的,所述第一设置模块,包括:

第一确定子模块,用于根据预设的分级策略,按照所获得的被搜索次数,确定所述第一类搜索词中各个搜索词的等级,其中,所述分级策略为:搜索词的被搜索次数越多,该搜索词被划分的等级越高;

设置子模块,用于按照所述第一类搜索词中各个搜索词的等级从高到低的顺序,依据时长由短到长的原则依次设置所述第一类搜索词中各个搜索词的搜索结果的缓存过期时长,其中,属于同一级别的搜索词其搜索结果的缓存过期时长相等。

第四方面,本发明实施例还提供了一种搜索装置,所述装置包括:

第二获得模块,用于获得目标搜索请求,其中,所述目标搜索请求中携带目标搜索词;

判断模块,用于判断已缓存的搜索结果中是否存在所述目标搜索词的搜索结果,其中,已缓存的搜索结果为:按照上述搜索结果缓存方法缓存的搜索结果;

第三获得模块,用于在所述判断模块的判断结果为是时,根据已缓存的搜索结果中所述目标搜索词的搜索结果,获得所述目标搜索词的最终搜索结果。

可选的,所述第三获得模块,包括:

第一判断子模块,用于判断目标搜索结果是否已被设置过缓存过期时长,其中,所述目标搜索结果为:已缓存搜索结果中所述目标搜索词的搜索结果;

第一获得子模块,用于在所述第一判断子模块的判断结果为是时,获得目标缓存过期时长与预设值的第一比值,并判断所述第一比值是否大于目标缓存时长,其中,所述目标缓存过期时长为:所述目标搜索结果已被设置的缓存过期时长,所述目标缓存时长为:所述目标搜索结果的缓存时长;

第二确定子模块,用于在所述第一获得子模块的判断结果为是时,则将所述目标搜索结果确定为所述目标搜索词的最终搜索结果。

可选的,在所述判断模块的判断结果为否时,或者,所述第一获得子模块的判断结果为否时,所述第三获得模块还包括:

第一收发子模块,用于将所述目标搜索请求转发给搜索服务器,使得所述搜索服务器根据所述目标搜索词进行搜索获得搜索结果;接收所述搜索服务器发送的搜索结果,并将接收的搜索结果确定为所述目标搜索词的最终搜索结果。

可选的,所述第三获得模块还包括:

缓存子模块,用于缓存接收的搜索结果。

可选的,在所述第一判断子模块的判断结果为否的情况下,所述第三获得模块还包括:

第二判断子模块,用于判断所述目标搜索结果是否已被设置缓存有效时长;

第二获得子模块,用于在所述第二判断子模块的判断结果为是时,获得目标缓存有效时长与预设值的第二比值,并判断所述第二比值是否大于所述目标缓存时长,其中,所述目标缓存有效时长为:所述目标搜索结果已被设置的缓存有效时长;

第三确定子模块,用于在所述第二获得子模块的判断结果为是时,将所述目标搜索结果确定为所述目标搜索词的最终搜索结果;

第二收发子模块,由于在所述第二获得子模块的判断结果为否时,将所述目标搜索请求转发给搜索服务器,使得所述搜索服务器根据所述目标搜索词进行搜索获得搜索结果,并接收所述搜索服务器发送的搜索结果,将接收的搜索结果确定为所述目标搜索词的最终搜索结果。

可选的,在所述第二判断子模块的判断结果为否时,所述第三获得模块还包括:

第四确定子模块,用于将所述目标搜索结果确定为所述目标搜索词的最终搜索结果。

在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的搜索结果缓存方法。

在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的搜索方法。

在本发明实施的又一方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述的搜索结果缓存方法。

在本发明实施的又一方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述的搜索方法。

可见,应用本发明实施例提供的技术方案进行搜索结果缓存时,对于在预设时长内被搜索过搜索词,可以设置搜索次数较多的搜索词的搜索结果的缓存过期时长较短,设置搜索次数较少的搜索词的搜索结果的缓存过期时长较长,并且对于在预设时长内未被搜索过搜索词,可以采用预设淘汰算法,确定是否继续缓存其搜索结果,相对于现有技术将搜索量不同的搜索词的搜索结果设置相同缓存过期时长的方法,冷门搜索词的搜索结果可以被缓存的时间更长,实现了使本地缓存的数据更全面。

附图说明

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

图1为本发明实施例提供的一种搜索结果缓存方法的应用场景图;

图2为本发明实施例提供的一种搜索结果缓存方法的流程示意图;

图3为本发明实施例提供的一种搜索方法的流程示意图;

图4为利用本发明实施例提供的搜索方法的进行搜索的运行示意图;

图5为本发明实施例提供的一种搜索结果缓存装置的结构示意图;

图6为本发明实施例提供的一种搜索装置的结构示意图;

图7为本发明实施例提供的一种电子设备的结构示意图;

图8为本发明实施例提供的另一种电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

为了解决现有技术中缓存的数据可能不全面的问题,本发明实施例公开了一种搜索结果缓存方法、装置及电子设备。

具体的,参见图1,图1为本发明实施例提供的一种搜索结果缓存方法的应用场景图。如图1所示,服务器中的搜索词收集中心进程11获得第一类搜索词中各个搜索词在预设时长内的被搜索次数,并按照所获得的被搜索次数从大到小的顺序,依据时长由短到长的原则依次设置第一类搜索词中各个搜索词的搜索结果的缓存过期时长;并将各个缓存过期时长发送给服务进程12,从而,服务器中的服务进程12根据各个缓存过期时长,缓存第一类搜索词中各个搜索词的搜索结果,并采用预设淘汰算法,确定是否继续缓存第二类搜索词中各个搜索词的搜索结果,从而实现了使本地缓存的数据更全面。

下面对本发明实施例提供的一种搜索结果缓存方法进行详细说明。

需要说明的是,本发明实施例所提供的一种搜索结果缓存方法应用于电子设备,其中,在具体应用中,该电子设备可以为服务器,也可以为终端设备,这都是合理的。另外,实现本发明实施例所提供的一种搜索结果缓存方法的功能软件可以为专门的缓存软件,也可以为现有缓存软件或其他具有缓存功能的软件中的插件。

参见图2,图2为本发明实施例提供的一种搜索结果缓存方法的流程示意图,包括如下步骤:

s201,获得第一类搜索词中各个搜索词在预设时长内的被搜索次数。

其中,第一类搜索词为:已缓存搜索结果的搜索词中在预设时长内被搜索过的搜索词。

实际应用中,预设时长可以根据用户需求设计,本发明实施例对此不做限定。例如,预设时长可以为5小时、6小时、9小时、12小时等等。

下面以服务器为执行主体,对本发明实施例进行说明,服务器为执行主体仅为本发明的一个具体实例,并不构成对本发明的限定。在实际应用中,执行主体可以根据用户需要进行设定。

本发明实施例对服务器获得第一类搜索词中各个搜索词在预设时长内的被搜索次数的方式不做限定,例如,该方式可以为:由本服务器中的搜索词收集中心(query_collect_center)进程统计得到该被搜索次数;或者,还可以为:由除本服务器以外的服务器统计得到该被搜索次数,并定期将统计结果发送给本服务器。

具体的,本服务器中的query_collect_center统计第一类搜索词中各个搜索词(query)在预设时长内的被搜索次数的过程可以为:由本服务器中每一个接受搜索请求的服务进程统计在时间t(如0.5小时)内的query,以及各个query的被搜索次数。并将统计结果以消息数据的方式发送给query_collect_center,query_collect_center接收各个服务进程发送来的统计结果,并以时间t为单位汇总各个统计结果,得到query在预设时长内的被搜索次数,可以看出,预设时长即为时间t。

进一步,可以根据用户需求延长预设时长,本发明实施例对延长预设时长的方式不做限定。该方式可以为:直接延长时间t,也可以为:query_collect_center将得到的k个t时间单位内的query被搜索次数汇总,并将汇总结果作为query在预设时长内的被搜索次数,可以看出,预设时长即为k个时间t,例如,k=24,t为0.5小时,预设时长为:k*t=24*0.5=12小时,则将过去12小时内的query被搜索次数汇总结果,即为query在预设时长内的被搜索次数。

在一种实施方式中,为了提高服务器的存储空间利用率,在消息数据发送后,接受搜索请求的服务进程可以将统计结果清空,从而可以重新统计在时间t内的query情况。

s202,按照所获得的被搜索次数从大到小的顺序,依据时长由短到长的原则依次设置第一类搜索词中各个搜索词的搜索结果的缓存过期时长;并采用预设淘汰算法,确定是否继续缓存第二类搜索词中各个搜索词的搜索结果。

其中,第二类搜索词为:已缓存搜索结果的搜索词中在预设时长内未被搜索过搜索词。

需要说明的是,缓存过期时长是指在超过该时长后,服务器缓存的搜索词的搜索结果会过期,并且过期的搜索结果会被标识为不可用,服务器需要重新去获取该搜索词的搜索结果,并将得到的搜索结果重新缓存于本地,达到更新本地缓存的目的。重新缓存搜索词的搜索结果时,可以应用本发明实施例重新设置该搜索结果的缓存过期时长。

按照所获得的被搜索次数从大到小的顺序,依据时长由短到长的原则依次设置第一类搜索词中各个搜索词的搜索结果的缓存过期时长,可以使被搜索次数越多搜索词的搜索结果,缓存过期时长越短;被搜索次数越少搜索词的搜索结果,缓存过期时长越长,例如,第一类搜索词包括为a、b、c,搜索词a的被搜索次数>搜索词b的被搜索次数>搜索词c的被搜索次数,则设置搜索词a的搜索结果的缓存过期时长<搜索词b的搜索结果的缓存过期时长<搜索词c的搜索结果的缓存过期时长。

可以看出,对于被搜索次数较多的热门搜索词而言,其搜索结果的缓存过期时间较短,故本地缓存结果能够被频繁更新,符合热门搜索词的搜索结果需要被频繁更新的特点;而对于被搜索次数较少的冷门搜索词而言,其搜索结果的缓存过期时间较长,因而,在到达热门搜索词的缓存过期时长时,冷门搜索词的搜索依然不会超过缓存过期时长,服务器缓存的冷门搜索词的搜索结果不会被标识为不可用,各冷门搜索词的搜索结果能够被有效缓存,并且冷门搜索词的搜索结果不用被更新,也符合冷门搜索词的搜索结果不需要被频繁更新的特点。

实际应用中,预设的淘汰算法可以为:lru(leastrecentlyused,最近最少使用)算法、fifo(firstinfirstout,先进先出)算法、lfu(leastfrequentlyused,最不经常使用)算法等等。本发明实施例对具体使用的淘汰算法不做限定。例如,使用的淘汰算法为:lru算法,由于lru算法是根据数据的历史访问记录来进行淘汰数据,其核心思想是:如果数据最近被访问过,那么将来被访问的几率也更高,则采用预设淘汰算法,确定是否继续缓存第二类搜索词中各个搜索词的搜索结果的步骤可以为:针对第二类搜索词中各个搜索词的搜索结果,获得各个搜索结果最近被使用的时间,将最近被使用的时间距离当前时间最远的搜索结果淘汰,将其余的搜索结果继续缓存。

由于第二类搜索词为:已缓存搜索结果的搜索词中在预设时长内未被搜索过搜索词,故第二类搜索词可以认为是冷门搜索词,其搜索结果不需要被频繁更新,因此,对于第二类搜索词中各个搜索词,可以不设置缓存过期时间,而是使用淘汰算法来确定是否继续其搜索结果,从而能够延长冷门搜索词的搜索结果在服务器的缓存时间,使得服务器缓存的数据更全面。

可见,应用本发明实施例提供的技术方案进行搜索结果缓存时,对于在预设时长内被搜索过搜索词,可以设置搜索次数较多的搜索词的搜索结果的缓存过期时长较短,设置搜索次数较少的搜索词的搜索结果的缓存过期时长较长,并且对于在预设时长内未被搜索过搜索词,可以采用预设淘汰算法,确定是否继续缓存其搜索结果,相对于现有技术将搜索量不同的搜索词的搜索结果设置相同缓存过期时长的方法,冷门搜索词的搜索结果可以被缓存的时间更长,实现了使本地缓存的数据更全面。

进一步,为了节约系统资源,提高服务器存储空间利用率,具体的,该方法还可以包括:

设置第一类搜索词中各个搜索词的搜索结果的缓存有效时长等于该搜索词的搜索结果的缓存过期时长。

从而,服务器可以及时将超过缓存有效时长的搜索结果删除,达到减少不必要存储空间占用,提高服务器存储空间利用率的目的。

需要说明的是,数据更新服务器在检测到搜索词的搜索结果更新后,会将已被更新搜索结果的搜索词作为标题(title),然后以消息方式将该标题发送给服务器,并标识该消息的类型为:第一类型。本发明实施例对第一类型的名称不做限定。例如,第一类型的名称可以为:cache_breaker_redis,其中,数据更新服务器可以为不同于本服务器的任意服务器,本发明实施例对数据更新服务器的类型和配置不做限定。

服务器在收到数据更新服务器发送的第一类型的消息后,根据该标题,查找是否已设置该标题的搜索结果的缓存有效时长,如果已设置,则重新设置该标题的搜索结果的缓存有效时长为:默认时长,并设置该标题的搜索结果的缓存过期时长为:默认时长;其中,默认时长可以根本用户需求进行设定,本发明实施例对此不做限定。例如,过期时长可以为:1小时、2小时、3小时等等。

如果未设置,则按照所获得的被搜索次数从大到小的顺序,依据时长由短到长的原则依次设置第一类搜索词中各个搜索词的搜索结果的缓存有效时长,并设置标题的搜索结果的缓存过期时长等于缓存有效时长。

为了便于数据的维护和管理,已缓存搜索结果的搜索词可以为:搜索结果已缓存于第一数据库中的搜索词;该方法还可以包括:

将第一类搜索词中各个搜索词与该搜索词的搜索结果的缓存有效时长对应缓存至第二数据库;

将第一类搜索词中各个搜索词与该搜索词的搜索结果的缓存过期时长对应缓存至第三数据库。

第一数据库、第二数据库以及第三数据库均为key-value数据库,key-value数据库是一种以键值对存储数据的一种数据库,常见的key-value数据库包括:redis数据库、memcache数据库、berkeley数据库等等。本发明实施例对具体的第一数据库、第二数据库以及第三数据库的形式不做限定。例如,第一数据库、第二数据库以及第三数据库可以都为redisserver数据库,也可以都为mysqlserver数据库,还可以第一数据库和第二数据库为redisserver数据库,第三数据库为mysqlserver数据库等等。

由于redis是一种内存型的数据库,可以对外提供很好地读写操作,因此,在一种具体的实施方式中,第一数据库、第二数据库以及第三数据库都为redisserver数据库,并且,本发明实施例对第一数据库、第二数据库以及第三数据库的名称不做限定。

例如,第一数据库、第二数据库以及第三数据库均为的redisserver数据库,名称分别为:cache_redis和query_redis,cache_breaker_redis,则cache_redis用于存储搜索结果,其中,cache_redis的key为:搜索请求的标识,value为:搜索结果;query_redis用于存储缓存有效时间,其中,query_redis的key为:query,即搜索词;value为:query对应的搜索结果的缓存有效时长;cache_breaker_redis用于存储存储缓存过期时长,即需要立即更新缓存的query,其中,cache_breaker_redis的key为:query,value为:query对应的搜索结果的缓存过期时长。

为了便于设置缓存过期时间,具体的,按照所获得的被搜索次数从大到小的顺序,依据时长由短到长的原则依次设置第一类搜索词中各个搜索词的搜索结果的缓存过期时长的步骤,可以为:

根据预设的分级策略,按照所获得的被搜索次数,确定第一类搜索词中各个搜索词的等级,其中,分级策略为:搜索词的被搜索次数越多,该搜索词被划分的等级越高;

按照第一类搜索词中各个搜索词的等级从高到低的顺序,依据时长由短到长的原则依次设置第一类搜索词中各个搜索词的搜索结果的缓存过期时长,其中,属于同一级别的搜索词其搜索结果的缓存过期时长相等。

示例性的,设定n个等级,每个等级的搜索缓存过期时长分别为t1,t2,t3……tn(t1<t2<t3<……tn),等级之间的按搜索次数划分,搜索次数分别为l1,l2,l3……ln-1(l1>l2>l3……ln-1),如果某个query的被搜索次数大于l1,则将其设置为1级,并将该query的搜索结果的缓存过期时长设置为t1;如果小于等于l1,并且大于l2,则将其设置为2级,并将该query的搜索结果的缓存过期时长设置为t2;……,依次类推,如果小于ln-1,则将其设置为n级,并将该query的搜索结果的缓存过期时长设置为tn。

实际应用中,可以由服务器的query_collect_center进程执行设置缓存过期时长的步骤,并将设置好的各个搜索词的搜索结果的缓存过期时长以消息的形式发送给各个接受搜索请求的服务进程,同时标识该消息类型为:第二类型,本发明实施例对第二类型的名称不做限定,例如,第二类型的名称可以为:query_redis类型,服务进程在接收到第二类型的消息后,将其解析为key_value类型数据,即获得第二类型的消息中的搜索词和该搜索词的搜索结果的缓存过期时长,并将其对应存储。

为了解决现有技术中因为缓存的数据可能不全面而导致的缓存命中率不高的问题,本发明实施例还公开了一种搜索方法、装置及电子设备。

具体的,本发明实施例提供的搜索方法的应用场景可以为:服务器的获得目标搜索请求,其中,目标搜索请求中携带目标搜索词;并判断本服务器已缓存的搜索结果中是否存在目标搜索词的搜索结果,其中,已缓存的搜索结果为:按照上述的搜索结果缓存方法缓存的搜索结果;若为是,根据已缓存的搜索结果中目标搜索词的搜索结果,获得目标搜索词的最终搜索结果,因为服务器中缓存的数据更全面,进而在该服务器中进行缓存搜索,实现了提高缓存命中率。

下面对本发明实施例提供的一种搜索方法进行详细说明。

需要说明的是,本发明实施例所提供的一种搜索方法应用于电子设备,其中,在具体应用中,该电子设备可以为服务器,也可以为终端设备,这都是合理的。另外,实现本发明实施例所提供的一种搜索方法的功能软件可以为专门的搜索软件,也可以为现有搜索软件或其他具有搜索功能的软件中的插件。

参见图3,图3为本发明实施例提供的一种搜索方法的流程示意图,包括如下步骤:

s301,获得目标搜索请求。

其中,目标搜索请求中携带目标搜索词。

实际应用中,目标搜索请求可以是由目标客户端发送的,用于向服务器请求目标搜索词的搜索结果的。目标客户端可以为除本服务器以外的任一服务器,本发明实施例的对目标客户端的型号和类别不做限定。

s302,判断已缓存的搜索结果中是否存在目标搜索词的搜索结果,其中,已缓存的搜索结果为:按照上述搜索结果缓存方法缓存的搜索结果;若为是,则执行s303。

例如,已缓存的搜索结果为:缓存于cache_redis中的搜索结果,则判断已缓存的搜索结果中是否存在目标搜索词的搜索结果的步骤,可以为:将目标搜索词作为关键字(key),判断是否能在cache_redis中查找到与该key值对应的搜索结果,如果能,则判定已缓存的搜索结果中是存在目标搜索词的搜索结果;如果不能,则判定已缓存的搜索结果中是不存在目标搜索词的搜索结果。

s303,根据已缓存的搜索结果中目标搜索词的搜索结果,获得目标搜索词的最终搜索结果。

可见,应用本发明实施例提供的搜索方法,由于已缓存的搜索结果为:按照上述搜索结果缓存方法缓存的搜索结果,因此,服务器中缓存的数据更全面,进而在该服务器中进行缓存搜索,能够提高缓存命中率。

由于在已缓存的搜索结果中存在目标搜索词的搜索结果的情况下,该搜索结果有可能被设置缓存过期时长,并存在因为超过缓存过期时长,而使得该搜索结果被标识为不可用,导致该搜索结果无法被有效获取的情况,因此,为了保证最终搜索结果为:能被有效获取的搜索结果,在一种具体的实施方式中,根据已缓存的搜索结果中目标搜索词的搜索结果,获得目标搜索词的最终搜索结果的步骤,可以包括以下几步:

第一步,判断目标搜索结果是否已被设置过缓存过期时长,其中,目标搜索结果为:已缓存搜索结果中目标搜索词的搜索结果;若设置过,则执行第二步;

第二步,获得目标缓存过期时长与预设值的第一比值,并判断该第一比值是否大于目标缓存时长,其中,目标缓存过期时长为:目标搜索结果已被设置的缓存过期时长,目标缓存时长为:所述目标搜索结果的缓存时长;

可以理解的是,预设值可以根据用户需求进行设定,本发明实施例对预设值的具体数值不做限定。例如,预设值可以为:1、2、3、4、5等等数值。目标搜索结果的缓存时长,即为搜索结果的已存在时间,可以为当前时间与搜索结果缓存起始时间的差值。

如果大于,则将目标搜索结果确定为目标搜索词的最终搜索结果。

可以看出,针对目标搜索结果已被设置过缓存过期时长的情况,只有在目第一比值大于目标缓存过期时长时,即说明该目标搜索结果能够被有效获取,故该目标搜索结果能够作为目标搜索词的最终搜索结果。

进一步,为了保证在已缓存搜索结果中不存在目标搜索词的搜索结果,或者,第一比值小于或者等于目标缓存时长的情况下,目标搜索词的最终搜索结果依然能够被有效获取,该方法还可以包括:

将目标搜索请求转发给搜索服务器,使得该搜索服务器根据该目标搜索词进行搜索获得搜索结果;

接收该搜索服务器发送的搜索结果,并将接收的搜索结果确定为该目标搜索词的最终搜索结果。

需要说明的是,搜索服务器能够根据搜索词进行搜索,并获得搜索结果。具体的,搜索服务器根据搜索词进行搜索,并获得搜索结果的过程属于现有技术,本发明实施例在此不再赘述。

为了提高服务器缓存数据的全面性,在接收到该搜索服务器发送的搜索结果之后,该方法还可以包括:

缓存接收的搜索结果。

具体的,缓存接收的搜索结果的方式可以为:将接收的搜索结果写入第一数据库,并且不设置该搜索结果的缓存过期时间。

由于在目标搜索结果未被设置过缓存过期时长的情况下,该目标搜索结果有可能被设置过缓存有效时长,并存在因为超过缓存有效时长,而使得该目标搜索结果的内容被删除,导致该目标搜索结果无法被有效获取的情况,因此,为了避免这种情况,保证最终搜索结果为:能被有效获取到的搜索结果,该方法还可以包括以下几步:

步骤a、判断目标搜索结果是否已被设置缓存有效时长;如果已被设置,则执行步骤b;

步骤b、获得目标缓存有效时长与预设值的第二比值,并判断该第二比值是否大于该目标缓存时长,其中,目标缓存有效时长为:目标搜索结果已被设置的缓存有效时长;如果大于,则执行步骤c;如果不大于,则执行步骤d;

步骤c、将目标搜索结果确定为目标搜索词的最终搜索结果;

步骤d、将目标搜索请求转发给搜索服务器,使得搜索服务器根据目标搜索词进行搜索获得搜索结果,并接收搜索服务器发送的搜索结果,将接收的搜索结果确定为目标搜索词的最终搜索结果。

进一步的,如果该目标搜索结果未被设置缓存有效时长,则该方法还可以包括:

将该目标搜索结果确定为目标搜索词的最终搜索结果。

下面通过一个具体实例来对本发明实施例进行简单介绍。

将本发明实施例提供的搜索方法应用于某个电子设备,该电子设备中搭建有3个redisserver,分别为cache_redis和query_redis,cache_breaker_redis,并且都采用上述搜索结果缓存方法缓存搜索结果。其中,cache_redis作为第一数据库,用来存储视频搜索结果缓存,其中,query_redis作为第二数据库,用来存储带有query及query对应的视频搜索结果的缓存有效时间;cache_breaker_redis作为第三数据库,用来存储立即被更新的视频搜索结果的query。

如图4所示,当该电子设备收到目标客户端发送的目标搜索请求后,将该目标搜索请求的标识(request)作为key,去查找第一数据库,判断第一数据库已缓存的搜索结果中是否存在与标识对应的搜索结果;

如果不存在,则将该目标搜索请求转发给搜索服务器,使得该搜索服务器根据该目标搜索请求中携带的目标搜索词进行搜索,并获得搜索结果,从而该电子设备接收该搜索服务器发送的搜索结果,并将接收的搜索结果确定为该目标搜索词的最终搜索结果,并写入第一数据库。

如果存在,则将与标识对应的搜索结果作为目标搜索结果,即可认为命中第一数据库,并将目标搜索词作为key,去查找第三数据库,判断第三数据库中是否存在与该目标搜索词对应的缓存过期时长;

如果第三数据库中存在与该目标搜索词对应的缓存过期时长,即命中第三数据库,进而,获得目标搜索结果的缓存过期时长a与预设值b的第一比值c,即c=a/b,并判断c是否大于目标搜索结果的缓存时长m;

如果大于,则将该目标搜索结果确定为该目标搜索词的最终搜索结果,并将该最终搜索结果发送给目标客户端;如果小于或等于,则将该目标搜索请求转发给搜索服务器,使得该搜索服务器根据该目标搜索请求中携带的目标搜索词进行搜索,并获得搜索结果,从而该电子设备接收该搜索服务器发送的搜索结果,并将接收的搜索结果确定为该目标搜索词的最终搜索结果,进一步,该电子设备可以将该最终搜索结果发送给目标客户端。

如果第三数据库中不存在与该目标搜索词对应的缓存过期时长,即未命中第三数据库,则将目标搜索词作为key,去查找第二数据库,判断第二数据库中是否存在与该目标搜索词对应的缓存有效时长;

如果第二数据库中存在与该目标搜索词对应的缓存有效时长,即命中第二数据库,进而,获得目标搜索结果的缓存有效时长e与预设值b的第一比值f,即f=e/b,并判断f是否大于目标搜索结果的缓存时长m;

如果大于,则将该目标搜索结果确定为该目标搜索词的最终搜索结果;并将该最终搜索结果发送给目标客户端。

如果如果小于或等于,或者,如果第二数据库中不存在与该目标搜索词对应的缓存有效时长,即未命中第二数据库,则将该目标搜索请求转发给搜索服务器,使得该搜索服务器根据该目标搜索请求中携带的目标搜索词进行搜索,并获得搜索结果,从而该电子设备接收该搜索服务器发送的搜索结果,并将接收的搜索结果确定为该目标搜索词的最终搜索结果,进一步,该电子设备可以将该最终搜索结果发送给目标客户端。

可见,应用本发明实施例提供的搜索装置,由于已缓存的搜索结果为:按照上述搜索结果缓存方法缓存的搜索结果,因此,服务器中缓存的数据更全面,进而在该服务器中进行缓存搜索,能够提高缓存命中率。

与上述的搜索结果缓存方法实施例相对应,本发明实施例还提供一种搜索结果缓存装置。

参见图5,图5为本发明实施例提供的一种搜索结果缓存装置的结构示意图装置包括:

第一获得模块501,用于获得第一类搜索词中各个搜索词在预设时长内的被搜索次数,其中,该第一类搜索词为:已缓存搜索结果的搜索词中在预设时长内被搜索过的搜索词;

第一设置模块502,用于按照所获得的被搜索次数从大到小的顺序,依据时长由短到长的原则依次设置第一类搜索词中各个搜索词的搜索结果的缓存过期时长;并采用预设淘汰算法,确定是否继续缓存第二类搜索词中各个搜索词的搜索结果,其中,第二类搜索词为:已缓存搜索结果的搜索词中在预设时长内未被搜索过搜索词。

可见,应用本发明实施例提供的装置进行搜索结果缓存时,对于在预设时长内被搜索过搜索词,可以设置搜索次数较多的搜索词的搜索结果的缓存过期时长较短,设置搜索次数较少的搜索词的搜索结果的缓存过期时长较长,并且对于在预设时长内未被搜索过搜索词,可以采用预设淘汰算法,确定是否继续缓存其搜索结果,相对于现有技术将搜索量不同的搜索词的搜索结果设置相同缓存过期时长的方法,冷门搜索词的搜索结果可以被缓存的时间更长,实现了使本地缓存的数据更全面。

其中,该装置还可以包括:

第二设置模块,用于设置第一类搜索词中各个搜索词的搜索结果的缓存有效时长等于该搜索词的搜索结果的缓存过期时长。

其中,已缓存搜索结果的搜索词为:搜索结果已缓存于第一数据库中的搜索词;该装置还可以包括:

第一缓存模块,用于将第一类搜索词中各个搜索词与该搜索词的搜索结果的缓存有效时长对应缓存至第二数据库;

第二缓存模块,用于将所第一类搜索词中各个搜索词与该搜索词的搜索结果的缓存过期时长对应缓存至第三数据库;

其中,第一设置模块502,包括:

第一确定子模块,用于根据预设的分级策略,按照所获得的被搜索次数,确定第一类搜索词中各个搜索词的等级,其中,分级策略为:搜索词的被搜索次数越多,该搜索词被划分的等级越高;

设置子模块,用于按照第一类搜索词中各个搜索词的等级从高到低的顺序,依据时长由短到长的原则依次设置所第一类搜索词中各个搜索词的搜索结果的缓存过期时长,其中,属于同一级别的搜索词其搜索结果的缓存过期时长相等。

与上述的搜索方法实施例相对应,本发明实施例还提供一种搜索装置。

参见图6,图6为本发明实施例提供的一种搜索装置的结构示意图,该装置包括该装置包括:

第二获得模块601,用于获得目标搜索请求,其中,该目标搜索请求中携带目标搜索词;

判断模块602,用于判断已缓存的搜索结果中是否存在该目标搜索词的搜索结果,其中,已缓存的搜索结果为:按照上述搜索结果缓存方法缓存的搜索结果;

第三获得模块603,用于在判断模块602的判断结果为是时,根据已缓存的搜索结果中目标搜索词的搜索结果,获得该目标搜索词的最终搜索结果。

可见,应用本发明实施例提供的搜索装置,由于已缓存的搜索结果为:按照上述搜索结果缓存方法缓存的搜索结果,因此,服务器中缓存的数据更全面,进而在该服务器中进行缓存搜索,能够提高缓存命中率。

其中,第三获得模块603,包括:

第一判断子模块,用于判断目标搜索结果是否已被设置过缓存过期时长,其中,目标搜索结果为:已缓存搜索结果中该目标搜索词的搜索结果;

第一获得子模块,用于在第一判断子模块的判断结果为是时,获得目标缓存过期时长与预设值的第一比值,并判断该第一比值是否大于目标缓存时长,其中,目标缓存过期时长为:该目标搜索结果已被设置的缓存过期时长,目标缓存时长为:该目标搜索结果的缓存时长;

第二确定子模块,用于在第一获得子模块的判断结果为是时,则将该目标搜索结果确定为该目标搜索词的最终搜索结果。

其中,在判断模块602的判断结果为否时,或者,第一获得子模块的判断结果为否时,第三获得模块603还包括:

第一收发子模块,用于将该目标搜索请求转发给搜索服务器,使得该搜索服务器根据该目标搜索词进行搜索获得搜索结果;接收该搜索服务器发送的搜索结果,并将接收的搜索结果确定为该目标搜索词的最终搜索结果。

其中,第三获得模块603还包括:

缓存子模块,用于缓存接收的搜索结果。

其中,在第一判断子模块的判断结果为否的情况下,第三获得模块603还包括:

第二判断子模块,用于判断该目标搜索结果是否已被设置缓存有效时长;

第二获得子模块,用于在该第二判断子模块的判断结果为是时,获得目标缓存有效时长与预设值的第二比值,并判断该第二比值是否大于该目标缓存时长,其中,目标缓存有效时长为:目标搜索结果已被设置的缓存有效时长;

第三确定子模块,用于在第二获得子模块的判断结果为是时,将该目标搜索结果确定为该目标搜索词的最终搜索结果;

第二收发子模块,由于在第二获得子模块的判断结果为否时,将该目标搜索请求转发给搜索服务器,使得该搜索服务器根据该目标搜索词进行搜索获得搜索结果,并接收该搜索服务器发送的搜索结果,将接收的搜索结果确定为该目标搜索词的最终搜索结果。

其中,在第二判断子模块的判断结果为否时,第三获得模块603还包括:

第四确定子模块,用于将该目标搜索结果确定为该目标搜索词的最终搜索结果。

本发明实施例还提供了一种电子设备,如图7所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信,

存储器703,用于存放计算机程序;

处理器701,用于执行存储器703上所存放的程序时,实现本发明实施例所提供的搜索结果缓存方法,具体的,该过搜索结果缓存方法包括如下步骤:

获得第一类搜索词中各个搜索词在预设时长内的被搜索次数;

按照所获得的被搜索次数从大到小的顺序,依据时长由短到长的原则依次设置第一类搜索词中各个搜索词的搜索结果的缓存过期时长;并采用预设淘汰算法,确定是否继续缓存第二类搜索词中各个搜索词的搜索结果。

可选的,该方法还包括:

设置第一类搜索词中各个搜索词的搜索结果的缓存有效时长等于该搜索词的搜索结果的缓存过期时长。

可选的,已缓存搜索结果的搜索词为:搜索结果已缓存于第一数据库中的搜索词;该方法还包括:

将第一类搜索词中各个搜索词与该搜索词的搜索结果的缓存有效时长对应缓存至第二数据库;

将第一类搜索词中各个搜索词与该搜索词的搜索结果的缓存过期时长对应缓存至第三数据库。

可选的,按照所获得的被搜索次数从大到小的顺序,依据时长由短到长的原则依次设置第一类搜索词中各个搜索词的搜索结果的缓存过期时长,包括:

根据预设的分级策略,按照所获得的被搜索次数,确定第一类搜索词中各个搜索词的等级;

按照第一类搜索词中各个搜索词的等级从高到低的顺序,依据时长由短到长的原则依次设置第一类搜索词中各个搜索词的搜索结果的缓存过期时长,其中,属于同一级别的搜索词其搜索结果的缓存过期时长相等。

本发明实施例还提供了一种电子设备,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信,

存储器803,用于存放计算机程序;

处理器801,用于执行存储器803上所存放的程序时,实现本发明实施例所提供的搜索方法,具体的,该搜索方法包括如下步骤:

获得目标搜索请求;

判断已缓存的搜索结果中是否存在所述目标搜索词的搜索结果;

若为是,根据已缓存的搜索结果中该目标搜索词的搜索结果,获得该目标搜索词的最终搜索结果。

可选的,根据已缓存的搜索结果中该目标搜索词的搜索结果,获得该目标搜索词的最终搜索结果,包括:

判断目标搜索结果是否已被设置过缓存过期时长;

若设置过,则获得目标缓存过期时长与预设值的第一比值,并判断该第一比值是否大于目标缓存时长;

如果大于,则将该目标搜索结果确定为该目标搜索词的最终搜索结果。

可选的,如果已缓存搜索结果中不存在该目标搜索词的搜索结果,或者,如果该第一比值小于或者等于该目标缓存时长,该方法还包括:

将该目标搜索请求转发给搜索服务器,使得该搜索服务器根据该目标搜索词进行搜索获得搜索结果;

接收该搜索服务器发送的搜索结果,并将接收的搜索结果确定为该目标搜索词的最终搜索结果。

可选的,该方法还包括:

缓存接收的搜索结果。

可选的,在该目标搜索结果未被设置过缓存过期时长的情况下,该方法还包括:

判断该目标搜索结果是否已被设置缓存有效时长;

如果已被设置,则获得目标缓存有效时长与预设值的第二比值,并判断该第二比值是否大于所述目标缓存时长;

如果大于,则将该目标搜索结果确定为该目标搜索词的最终搜索结果;

如果不大于,则将该目标搜索请求转发给搜索服务器,使得该搜索服务器根据该目标搜索词进行搜索获得搜索结果,并接收该搜索服务器发送的搜索结果,将接收的搜索结果确定为该目标搜索词的最终搜索结果。

可选的,如果该目标搜索结果未被设置缓存有效时长,该方法还包括:

将该目标搜索结果确定为该目标搜索词的最终搜索结果。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,简称ram),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的搜索结果缓存方法。

在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的搜索方法。

在本发明实施的又一方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述的搜索结果缓存方法。

在本发明实施的又一方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述的搜索方法。

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

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

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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