一种搜索方法、装置、电子设备及存储介质与流程

文档序号:14554930阅读:189来源:国知局
一种搜索方法、装置、电子设备及存储介质与流程

本发明涉及搜索技术领域,具体涉及一种搜索方法、装置、电子设备及存储介质。



背景技术:

随着互联网技术的发展,用户在网上搜索信息已非常普遍。通常,网站服务系统接收来自用户的搜索访问,并根据该搜索访问向用户返回相应的搜索结果。而缓存是分布式系统中的重要组件,主要解决高并发,大数据场景下,热点数据访问的性能问题,提供高性能的数据快速访问。目前比较常见的企业级搜索应用服务器solr、elasticsearch等,都有做各种层面的缓存,但是现有的缓存机制是查询条件必须是完全相同的,即逐字节相同才能够被认为是相同的,才能获取到缓存的内容。搜索应用服务器接受到搜索请求时,从全量数据中查询出搜索范围内的数据也是一个耗时的步骤,在检索整个流程中占有不小耗时比重。当全量数据达到1亿时,查询时间将达到1至3秒。

另外,如今大部分企业级应用场景,查询条件多变,例如仅搜索最近30天与31天时的数据,常见的企业级搜索应用服务器solr、elasticsearch的缓存机制无法命中自身设计的缓存,也就是说每次检索时时间稍有变化则需要耗费时间与服务器资源去重新查询出搜索范围内的数据,因而目前的搜索应用服务器并不适应查询条件多变的应用场景,搜索时间过长,用户搜索体验较低。



技术实现要素:

鉴于以上内容,有必要提出一种搜索方法、装置、电子设备及存储介质,其利用切片缓存机制进行缓存,能够提高缓存结果命中率,减少搜索响应时间,减轻对搜索服务器的访问压力,缩短搜索处理时间,提升用户体验。

本发明的第一方面提供一种搜索方法,所述方法包括:

接收用户的搜索请求;

对所述搜索请求根据预设切片规则进行切片得到多个切片查询请求;

判断缓存中是否存在与每一个切片查询请求对应的缓存结果,其中,所述缓存中的缓存结果预先根据所述预设切片规则进行切片得到多个切片缓存结果;及

当确定缓存中存在与每一个切片查询请求对应的缓存结果时,从所述缓存中获取与每一个切片查询请求对应的缓存结果并返回给用户;或者

当确定缓存中不存在与每一个切片查询请求对应的缓存结果时,从搜索服务器中搜索与所述搜索请求对应的搜索结果并返回给用户。

根据本发明的一个优选实施例,

所述搜索请求包括:搜索关键词、所需返回的搜索结果的起始时间以及所需返回的搜索结果的截止时间;

所述预设切片规则是指对所述搜索请求中的时间段根据预设单位进行取整和求余,所述搜索请求中的时间段是指所述所需返回的搜索结果的截止时间与所述所需返回的搜索结果的起始时间之间的差值;

所述切片查询请求包括:查询关键词、所需返回的缓存结果的起始时间以及所需返回的缓存结果的截止时间;

所述切片缓存结果包括:缓存关键词、缓存起始时间、缓存截止时间,所述缓存起始时间与所述缓存截止时间的差值与所述预设单位相同。

根据本发明的一个优选实施例,在所述对所述搜索请求根据预设切片规则进行切片得到多个切片查询请求之后,所述方法还包括:

判断所述多个切片查询请求中是否存在非预设单位的切片查询请求;及

当确定存在非预设单位的切片查询请求时,从搜索服务器中获取与所述非预设单位的切片查询请求对应的搜索结果并返回给用户。

根据本发明的一个优选实施例,在所述从搜索服务器中搜索与所述搜索请求对应的搜索结果并返回给用户之后,所述方法还包括:

将所述搜索请求与从所述搜索服务器中搜索的所述搜索结果进行关联并存储到所述缓存中。

根据本发明的一个优选实施例,所述判断缓存中是否存在与每一个切片查询请求对应的缓存结果包括:

将每一个切片查询请求中的查询关键词与切片缓存结果中的缓存关键词进行一一匹配;

将将每一个切片查询请求中的所述所需返回的缓存结果的起始时间与切片缓存结果中的所述缓存起始时间进行一一匹配;

将将每一个切片查询请求中的所述所需返回的缓存结果的截止时间与切片缓存结果中的所述缓存截止时间进行一一匹配。

根据本发明的一个优选实施例,所述方法还包括:

预先对所述多个切片缓存结果根据时间顺序进行顺序。

根据本发明的一个优选实施例,所述方法还包括:

根据时间顺序对所述多个切片查询请求进行排序。

本发明的第二方面提供一种搜索装置,所述装置包括:

接收模块,用于接收用户的搜索请求;

切片模块,用于对所述搜索请求根据预设切片规则进行切片得到多个切片查询请求;

判断模块,用于判断缓存中是否存在与每一个切片查询请求对应的缓存结果,其中,所述缓存中的缓存结果预先根据所述预设切片规则进行切片得到多个切片缓存结果;

获取模块,用于当所述判断模块确定所述缓存中存在与每一个切片查询请求对应的缓存结果时,从所述缓存中获取与每一个切片查询请求对应的缓存结果并返回给用户;

搜索模块,用于当所述判断模块确定所述缓存中不存在与每一个切片查询请求对应的缓存结果时,从搜索服务器中搜索与所述搜索请求对应的搜索结果并返回给用户。

本申请的第三方面提供一种电子设备,所述电子设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现所述搜索方法。

本申请的第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述搜索方法。

本发明所述的搜索方法、装置、服务器及存储介质,利用切片缓存机制进行缓存与查询,能够提高缓存结果命中率,减少搜索响应时间,减轻对搜索服务器的访问压力。同时将用户的搜索请求进行切片后,能够并行地对多个切片查询请求进行搜索,大大缩短搜索处理时间,提升用户体验。其次,关联所述搜索请求与从所述搜索服务器中获取的所述搜索结果;及将所述搜索请求及对应的所述搜索结果存储到所述缓存中,能够便于用户再次对所述关键词进行搜索时直接从所述缓存中提取,进一步提高了缓存命中率。

附图说明

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

图1是本发明实施例一提供的搜索方法的流程图。

图2是本发明实施例二提供的搜索装置的结构图。

图3是本发明实施例三提供的服务器的示意图。

如下具体实施方式将结合上述附图进一步说明本发明。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。

优选地,本发明的搜索方法应用在一个或者多个服务器中。所述服务器是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程门阵列(field-programmablegatearray,fpga)、数字处理器(digitalsignalprocessor,dsp)、嵌入式设备等。

所述服务器并不限定于台式电脑、桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述服务器可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。

所述搜索方法也可以应用于由终端和通过网络与所述终端进行连接的服务器所构成的硬件环境中。网络包括但不限于:广域网、城域网或局域网。本发明实施例的搜索方法可以由服务器来执行,也可以由服务器和终端共同执行。本申请在此不加以限制。

对于需要进行搜索方法的服务器,可以直接在服务器上集成本申请的方法所提供的搜索方法功能。再如,本申请所提供的方法还可以软件开发工具包(softwaredevelopmentkit,sdk)的形式运行在服务器等设备上,以sdk的形式提供搜索功能的接口,服务器或其他设备通过提供的接口即可实现搜索的加速。

实施例一

图1是本发明实施例一提供的搜索方法的流程图。根据不同的需求,图1所示流程图中的执行顺序可以改变,某些步骤可以省略。

101:接收用户的搜索请求。

本较佳实施例中,用户可以通过安装在服务器中的浏览器输入关键词,请求服务器搜索出与所述关键词对应的结果。所述终端将所述关键词发送至服务器,所述服务器接收包含有所述关键词的搜索请求。所述终端可以包括,但不限于桌上型计算机、笔记本、掌上电脑、智能手机、平板电脑等任何安装有浏览器的台式机或一体机。所述服务器可以包括:web服务器、互联网服务器、缓存服务器等。

本较佳实施例中,所述搜索请求包括:搜索关键词、所需返回的搜索结果的起始时间以及所需返回的搜索结果的截止时间。

102:对所述搜索请求根据预设切片规则进行切片得到多个切片查询请求。

本较佳实施例中,可以预先设置切片规则。所述预设切片规则是指对所述搜索请求中的时间段根据预设单位进行取整和求余。所述搜索请求中的时间段是指所述所需返回的搜索结果的截止时间与所述所需返回的搜索结果的起始时间之间的差值。

本较佳实施例中,所述预设单位可以是以天为单位、以周为单位、以月为单位或者以年为单位。所述预设单位不仅限于上述列举的,还可以是以3天、半月等任意时间段为单位,本发明对此不作限制。

一个优选的技术方案是所述预设单位是以天单位,如此可以对所述搜索请求中的时间段进行取整,且取整后能够得到多个单位的切片查询请求,从而有效的缩短了搜索处理时间。而以月甚至年为单位有可能无法对所述搜索请求中的时间段进行取整,只能求余,从而得不到一个单位的切片查询请求。另外以天单位将所述搜索请求中的时间段进行切片更加符合实际应用场景。

举例来说,假设用户搜索近一个半月内的“人脸识别”,以天为单位对一个半月的时间段进行取整可以得到45个单位的切片查询请求,而以月为单位对一个半月的时间段进行取整仅能得到1个单位的切片查询请求,以年为单位对一个半月的时间段进行取整得到0个单位的切片查询请求无法,也就是说以年为单位无法对一个半月的时间段进行取整。

本较佳实施例中,每一个切片查询请求包括:查询关键词、所需返回的缓存结果的起始时间以及所需返回的缓存结果的截止时间。其中,每一个切片查询请求中的查询关键词与所述搜索请求中的搜索关键词相同,所述所需返回的缓存结果的截止时间与所述所需返回的缓存结果的起始时间的差值与所述预设单位相同。

进一步地,所述对所述搜索请求根据预设切片规则进行切片得到多个切片查询请求还可以包括:根据时间顺序对所述多个切片查询请求进行排序。例如,根据时间顺序进行顺序排序,或者根据时间顺序进行倒序排序。

一个优选地技术方案是根据时间顺序对所述多个切片查询请求进行倒序排序。即,第一个切片查询请求距离用户请求返回的搜索结果的截止时间最近,距离用户请求返回的搜索结果的起始时间最远;第二个切片查询请求距离用户请求返回的搜索结果的截止时间第二近;以此类推;最后一个切片查询请求距离用户请求返回的搜索结果的截止时间最远,距离用户请求返回的搜索结果的起始时间最近。另外相邻排序的两个切片查询请求,排序在前的切片查询请求中的所需返回的缓存结果的起始时间是排序在后的切片查询请求中的所需返回的缓存结果的截止时间。

举例来说,假设所述预设单位是以天为单位,则第一个切片查询请求可以表示为“q=人脸识别&t1=20171130000000&t2=20171130240000”,第二个切片查询请求可以表示为“q=人脸识别&t1=20171129000000&t2=20171129240000”。其中,q为查询关键词,t1为所述所需返回的缓存结果的起始时间(年月日时分秒),t2为所述所需返回的缓存结果的截止时间(年月日时分秒)。

103:判断缓存中是否存在与每一个切片查询请求对应的缓存结果。

本较佳实施例中,预先设置一个缓存数据库(本文简称为缓存),缓存是专门用于存储使用频繁的数据的临时的地方,将中间结果或最终结果临时保存在所述缓存中便于后续使用。在其他实施例中,也可以设置一个单独的缓存服务器,专门用于缓存使用频繁的数据。

本较佳实施例中,所述缓存中的缓存结果预先根据所述预设单位进行切片得到多个切片缓存结果。

本较佳实施例中,每一个切片缓存结果对应一个缓存关键词、对应一个缓存起始时间、对应一个缓存截止时间,其中,所述缓存起始时间与所述缓存截止时间的差值与所述预设单位相同。

本较佳实施例中,将每一个切片查询请求与每一个切片缓存结果进行一一匹配以判断所述缓存中是否存在与切片查询请求对应的切片缓存结果。所述将每一个切片查询请求与每一个切片缓存结果进行一一匹配具体包括:将每一个切片查询请求中的查询关键词与切片缓存结果中的缓存关键词进行一一匹配;将将每一个切片查询请求中的所述所需返回的缓存结果的起始时间与切片缓存结果中的所述缓存起始时间进行一一匹配;将将每一个切片查询请求中的所述所需返回的缓存结果的截止时间与切片缓存结果中的所述缓存截止时间进行一一匹配。

当匹配成功,即命中缓存结果时,则确定缓存中存在与每一个切片查询请求对应的缓存结果时,执行步骤104;当匹配失败,即命中缓存结果失败时,则确定缓存中不存在与每一个切片查询请求对应的缓存结果时,执行步骤105。

104:从所述缓存中获取与每一个切片查询请求对应的缓存结果并返回给用户。

本较佳实施例中,当确定所述缓存中存在与每一个切片查询请求对应的缓存结果时,从所述缓存中提取出对应的缓存结果,并将所述缓存结果按照时间顺序进行排序并组合后返回给用户。

105:从搜索服务器中搜索与所述搜索请求对应的搜索结果并返回给用户。

本较佳实施例中,当确定缓存中不存在与每一个切片查询请求对应的缓存结果时,认为所述查询请求为第一次查询请求,即认为用户输入的搜索为首次搜索请求。对于首次搜索请求时,根据所述搜索请求到搜索服务器中进行搜索得到搜索结果,此处可以采用现有搜索技术,本发明在此不再赘述。所述搜索服务器也叫搜索引擎。

进一步地,所述搜索方法还可以包括:预先对所述多个切片缓存结果根据时间顺序进行顺序。例如,根据时间顺序进行顺序排序,或者根据时间顺序进行倒序排序。

一个优选地技术方案是根据时间顺序对所述多个切片缓存结果进行倒序排序,这样处于对应时间最新的缓存结果可以总是位于缓存数据库的最上面。即,第一个切片缓存结果对应的缓存起始时间及缓存截止时间距离当前时间最近;第二个切片缓存结果对应的缓存起始时间及缓存截止时间距离当前时间第二近;以此类推;最后一个切片缓存结果对应的缓存起始时间及缓存截止时间距离当前时间。另外对于相邻排序的两个切片缓存结果而言,排序在前的切片缓存结果对应的缓存起始时间是排序在后的切片缓存结果对应的缓存截止时间。

本较佳实施例中,对所述多个切片查询请求根据时间顺序进行排序,对所述多个切片缓存结果根据时间顺序进行排序,如此可以避免对每一个切片查询请求与每一个切片缓存结果进行一一匹配,仅需成功匹配出一个切片查询请求与一个切片缓存结果,边可以依序进行其他的切片查询请求与切片缓存结果的匹配,不仅降低了匹配复杂度,还可以节省匹配时间,缩短查询处理时间。

更进一步地,在步骤105之后,所述搜索方法还可以包括:将所述搜索请求与从所述搜索服务器中搜索的所述搜索结果进行关联并存储到所述缓存中。

将所述搜索请求作为查询请求与从所述搜索服务器中搜索的缓存结果关联起来并存储到所述缓存中,以便于用户再次对所述关键词进行搜索时直接从所述缓存中提取,进而提高缓存命中率;另外,读取缓存中的数据的速度远比从搜索服务器中查询数据的速度高得多,因而能够减轻对搜索服务器的访问压力,缩短搜索处理时间,提升用户体验。

应当理解的是,在实际应用中对所述搜索请求中的时间段根据预设单位进行切分可以分为两种情况:一种是刚好取整,一种是有结余。由此得到的多个切片查询请求也对应分为两种情况,一种是对应刚好取整的情况,此时将对所述搜索请求中的时间段根据预设单位进行切分得到的多个切片查询请求称之为预设单位的切片查询请求;一种是对应有结余的情况,此时将对所述搜索请求中的时间段根据预设单位无法进行切分的查询请求称之为非预设单位的切片查询请求。对于非预设单位的切片查询请求,在所述缓存中无法匹配出对应的缓存结果,因而认为所述非预设单位的切片查询请求为首次搜索请求。对于首次搜索请求时,根据所述搜索请求到搜索服务器中进行搜索得到搜索结果,此处可以采用现有搜索技术,本发明在此不再赘述。因而,在步骤102之后,所述搜索方法还可以进一步包括:判断多个切片查询请求中是否存在非预设单位的切片查询请求;当确定所述多个切片查询请求中存在非预设单位的切片查询请求时,从搜索服务器中搜索与所述非预设单位的切片查询请求对应的搜索结果并返回给用户;当确定所述多个切片查询请求中不存在非预设单位的切片查询请求时,执行上述步骤103,继续判断缓存中是否存在与每一个切片查询请求对应的缓存结果。

综上所述,本发明所述利用切片查询缓存进行搜索加速的方法,接收用户的搜索请求;对所述搜索请求根据预设切片规则进行切片得到多个切片查询请求;判断缓存中是否存在与每一个切片查询请求对应的缓存结果;当确定缓存中存在与每一个切片查询请求对应的缓存结果时,从所述缓存中获取与每一个切片查询请求对应的缓存结果并返回给用户;当确定缓存中不存在与每一个切片查询请求对应的缓存结果时,从搜索服务器中搜索与所述搜索请求对应的搜索结果并返回给用户。利用切片缓存机制进行缓存与查询,能够提高缓存结果命中率,减少搜索响应时间,减轻对搜索服务器的访问压力。同时将用户的搜索请求进行切片后,能够并行地对多个切片查询请求进行搜索,大大缩短搜索处理时间,提升用户体验。

例如将缓存中的全量数据,以天为单位进行切片得到多个单位的切片缓存数据,当用户请求搜索的时间为任意时间段时,若能将请求搜索的时间以天为单位进行切片得到多个单位的切片查询请求,则将多个单位的切片查询请求从所述缓存中命中多个单位的切片缓存结果,缓存中的结果能很好的被重复利用,节省搜索服务器的网络资源,缓解网络拥堵。对于以天为单位进行切片得到的切片查询请求中有非预设单位的切片查询请求,则依据现有的搜索技术对所述非预设单位的切片查询请求进行搜索,由于非预设单位的切片查询请求中的搜索时间单位小于1天,故依据现有的搜索技术进行搜索时耗时也较小,因而能有效地缩短搜索时间。

其次,本发明所述利用切片查询缓存进行搜索加速的方法,关联所述搜索请求与从所述搜索服务器中搜索的所述搜索结果;及将所述搜索请求及对应的所述搜索结果存储到所述缓存中,能够便于用户再次对所述关键词进行搜索时直接从所述缓存中提取。最后,根据时间顺序对所述多个切片查询请求及缓存中的多个切片缓存结果进行排序,可以避免对每一个切片查询请求与每一个切片缓存结果进行一一匹配,进而进一步的缩短了缓存查询时间。

最后应当说明的是,本发明切片缓存并不限于上述列举的以预设单位时间为切片依据,还可以适用于其他形式的切片,例如,数量等。当然,本发明也不限于上述列举的一次切片缓存,还可以是多次的切片缓存,例如,预先设置两个缓存服务器,其中一个缓存服务器根据第一预设切片单位进行切片,另一个缓存服务器根据第二预设切片单位进行切片,所述第一预设切片单位大于所述第二预设切片单位,本发明在此不再详细阐述。

实施例二

以上所述,仅是本发明的具体实施方式,但本发明的保护范围并不局限于此,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出改进,但这些均属于本发明的保护范围。

下面结合第2至3图,分别对实现搜索方法的服务器的功能模块及硬件结构进行介绍。

应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。

参阅图2所示,是本发明搜索装置20的较佳实施例中的功能模块图。

在一些实施例中,所述搜索装置20运行于所述服务器3中。所述搜索装置20可以包括多个由程序代码段所组成的功能模块。所述搜索装置20中的各个程序段的程序代码可以存储于存储器中,并由至少一个处理器所执行,以执行(详见图1描述)对搜索进行加速。

本实施例中,所述服务器1的搜索装置20根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:接收模块201、切片模块202、判断模块203、获取模块204、搜索模块205、排序模块206及关联模块207。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在一些实施例中,关于各模块的功能将在后续的实施例中详述。

接收模块201,用于接收用户的搜索请求。

本较佳实施例中,用户可以通过安装在服务器中的浏览器输入关键词,请求服务器搜索出与所述关键词对应的结果。所述终端将所述关键词发送至服务器,所述服务器接收包含有所述关键词的搜索请求。所述终端可以包括,但不限于桌上型计算机、笔记本、掌上电脑、智能手机、平板电脑等任何安装有浏览器的台式机或一体机。所述服务器可以包括:web服务器、互联网服务器、缓存服务器等。

本较佳实施例中,所述搜索请求包括:搜索关键词、所需返回的搜索结果的起始时间以及所需返回的搜索结果的截止时间。

切片模块202,用于对所述搜索请求根据预设切片规则进行切片得到多个切片查询请求。

本较佳实施例中,可以预先设置切片规则。所述预设切片规则是指对所述搜索请求中的时间段根据预设单位进行取整和求余。所述搜索请求中的时间段是指所述所需返回的搜索结果的截止时间与所述所需返回的搜索结果的起始时间之间的差值。

本较佳实施例中,所述预设单位可以是以天为单位、以周为单位、以月为单位或者以年为单位。所述预设单位不仅限于上述列举的,还可以是以3天、半月等任意时间段为单位,本发明对此不作限制。

一个优选的技术方案是所述预设单位是以天单位,如此可以对所述搜索请求中的时间段进行取整,且取整后能够得到多个单位的切片查询请求,从而有效的缩短了搜索处理时间。而以月甚至年为单位有可能无法对所述搜索请求中的时间段进行取整,只能求余,从而得不到一个单位的切片查询请求。另外以天单位将所述搜索请求中的时间段进行切片更加符合实际应用场景。

举例来说,假设用户搜索近一个半月内的“人脸识别”,以天为单位对一个半月的时间段进行取整可以得到45个单位的切片查询请求,而以月为单位对一个半月的时间段进行取整仅能得到1个单位的切片查询请求,以年为单位对一个半月的时间段进行取整得到0个单位的切片查询请求无法,也就是说以年为单位无法对一个半月的时间段进行取整。

本较佳实施例中,每一个切片查询请求包括:查询关键词、所需返回的缓存结果的起始时间以及所需返回的缓存结果的截止时间。其中,每一个切片查询请求中的查询关键词与所述搜索请求中的搜索关键词相同,所述所需返回的缓存结果的截止时间与所述所需返回的缓存结果的起始时间的差值与所述预设单位相同。

进一步地,所述对所述搜索请求根据预设切片规则进行切片得到多个切片查询请求还可以包括:根据时间顺序对所述多个切片查询请求进行排序。例如,根据时间顺序进行顺序排序,或者根据时间顺序进行倒序排序。

一个优选地技术方案是根据时间顺序对所述多个切片查询请求进行倒序排序。即,第一个切片查询请求距离用户请求返回的搜索结果的截止时间最近,距离用户请求返回的搜索结果的起始时间最远;第二个切片查询请求距离用户请求返回的搜索结果的截止时间第二近;以此类推;最后一个切片查询请求距离用户请求返回的搜索结果的截止时间最远,距离用户请求返回的搜索结果的起始时间最近。另外相邻排序的两个切片查询请求,排序在前的切片查询请求中的所需返回的缓存结果的起始时间是排序在后的切片查询请求中的所需返回的缓存结果的截止时间。

举例来说,假设所述预设单位是以天为单位,则第一个切片查询请求可以表示为“q=人脸识别&t1=20171130000000&t2=20171130240000”,第二个切片查询请求可以表示为“q=人脸识别&t1=20171129000000&t2=20171129240000”。其中,q为查询关键词,t1为所述所需返回的缓存结果的起始时间(年月日时分秒),t2为所述所需返回的缓存结果的截止时间(年月日时分秒)。

判断模块203,用于判断缓存中是否存在与每一个切片查询请求对应的缓存结果。

本较佳实施例中,预先设置一个缓存数据库(本文简称为缓存),缓存是专门用于存储使用频繁的数据的临时的地方,将中间结果或最终结果临时保存在所述缓存中便于后续使用。在其他实施例中,也可以设置一个单独的缓存服务器,专门用于缓存使用频繁的数据。

本较佳实施例中,所述缓存中的缓存结果预先根据所述预设单位进行切片得到多个切片缓存结果。

本较佳实施例中,每一个切片缓存结果对应一个缓存关键词、对应一个缓存起始时间、对应一个缓存截止时间,其中,所述缓存起始时间与所述缓存截止时间的差值与所述预设单位相同。

本较佳实施例中,将每一个切片查询请求与每一个切片缓存结果进行一一匹配以判断所述缓存中是否存在与切片查询请求对应的切片缓存结果。所述将每一个切片查询请求与每一个切片缓存结果进行一一匹配具体包括:将每一个切片查询请求中的查询关键词与切片缓存结果中的缓存关键词进行一一匹配;将将每一个切片查询请求中的所述所需返回的缓存结果的起始时间与切片缓存结果中的所述缓存起始时间进行一一匹配;将将每一个切片查询请求中的所述所需返回的缓存结果的截止时间与切片缓存结果中的所述缓存截止时间进行一一匹配。

获取模块204,用于当所述判断模块203确定缓存中存在与每一个切片查询请求对应的缓存结果时,从所述缓存中获取与每一个切片查询请求对应的缓存结果并返回给用户。

本较佳实施例中,当确定缓存中存在与每一个切片查询请求对应的缓存结果时,从所述缓存中提取出对应的缓存结果,并将所述缓存结果按照时间顺序进行排序并组合后返回给用户。

搜索模块205,用于当所述判断模块203确定所述缓存中不存在与每一个切片查询请求对应的缓存结果时从搜索服务器中搜索与所述搜索请求对应的搜索结果并返回给用户。

本较佳实施例中,当确定所述缓存中不存在与每一个切片查询请求对应的缓存结果时,认为所述查询请求为第一次查询请求,即认为用户输入的搜索为首次搜索请求。对于首次搜索请求时,根据所述搜索请求到搜索服务器中进行搜索得到搜索结果,此处可以采用现有搜索技术,本发明在此不再赘述。所述搜索服务器也叫搜索引擎。

进一步地,所述搜索装置20还可以包括排序模块206,用于预先对所述多个切片缓存结果根据时间顺序进行顺序。例如,根据时间顺序进行顺序排序,或者根据时间顺序进行倒序排序。

一个优选地技术方案是根据时间顺序对所述多个切片缓存结果进行倒序排序,这样处于对应时间最新的缓存结果可以总是位于缓存数据库的最上面。即,第一个切片缓存结果对应的缓存起始时间及缓存截止时间距离当前时间最近;第二个切片缓存结果对应的缓存起始时间及缓存截止时间距离当前时间第二近;以此类推;最后一个切片缓存结果对应的缓存起始时间及缓存截止时间距离当前时间。另外对于相邻排序的两个切片缓存结果而言,排序在前的切片缓存结果对应的缓存起始时间是排序在后的切片缓存结果对应的缓存截止时间。

本较佳实施例中,排序模块206对所述多个切片查询请求根据时间顺序进行排序,对所述多个切片缓存结果根据时间顺序进行排序,如此可以避免对每一个切片查询请求与每一个切片缓存结果进行一一匹配,仅需成功匹配出一个切片查询请求与一个切片缓存结果,边可以依序进行其他的切片查询请求与切片缓存结果的匹配,不仅降低了匹配复杂度,还可以节省匹配时间,缩短查询处理时间。

更进一步地,所述搜索方法还可以包括关联模块207,用于将所述搜索请求与从所述搜索服务器中搜索的所述搜索结果进行关联并存储到所述缓存中。

将所述搜索请求作为查询请求与从所述搜索服务器中搜索的缓存结果关联起来并存储到所述缓存中,以便于用户再次对所述关键词进行搜索时直接从所述缓存中提取,进而提高缓存命中率;另外,读取缓存中的数据的速度远比从搜索服务器中查询数据的速度高得多,因而能够减轻对搜索服务器的访问压力,缩短搜索处理时间,提升用户体验。

应当理解的是,在实际应用中对所述搜索请求中的时间段根据预设单位进行切分可以分为两种情况:一种是刚好取整,一种是有结余。由此得到的多个切片查询请求也对应分为两种情况,一种是对应刚好取整的情况,此时将对所述搜索请求中的时间段根据预设单位进行切分得到的多个切片查询请求称之为预设单位的切片查询请求;一种是对应有结余的情况,此时将对所述搜索请求中的时间段根据预设单位无法进行切分的查询请求称之为非预设单位的切片查询请求。对于非预设单位的切片查询请求,在所述缓存中无法匹配出对应的缓存结果,因而认为所述非预设单位的切片查询请求为首次搜索请求。对于首次搜索请求时,根据所述搜索请求到搜索服务器中进行搜索得到搜索结果,此处可以采用现有搜索技术,本发明在此不再赘述。因而,所述判断模块203,还用于判断多个切片查询请求中是否存在非预设单位的切片查询请求;当所述判断模块203确定所述多个切片查询请求中存在非预设单位的切片查询请求时,所述搜索模块205从搜索服务器中搜索与所述非预设单位的切片查询请求对应的搜索结果并返回给用户;当所述判断模块203确定所述多个切片查询请求中不存在非预设单位的切片查询请求时,所述判断模块203继续判断缓存中是否存在与每一个切片查询请求对应的缓存结果。

综上所述,本发明所述利用切片查询缓存进行搜索加速的装置20,所述接收模块201接收用户的搜索请求;所述切片模块202对所述搜索请求根据预设切片规则进行切片得到多个切片查询请求;所述判断模块203判断缓存中是否存在与每一个切片查询请求对应的缓存结果;当所述判断模块203确定缓存中存在与每一个切片查询请求对应的缓存结果时,所述获取模块204从所述缓存中获取与每一个切片查询请求对应的缓存结果并返回给用户;当所述判断模块203确定缓存中不存在与每一个切片查询请求对应的缓存结果时,所述搜索模块205从搜索服务器中搜索与所述搜索请求对应的搜索结果并返回给用户。利用切片缓存机制进行缓存与查询,能够提高缓存结果命中率,减少搜索响应时间,减轻对搜索服务器的访问压力。同时将用户的搜索请求进行切片后,能够并行地对多个切片查询请求进行搜索,大大缩短搜索处理时间,提升用户体验。

例如将缓存中的全量数据,以天为单位进行切片得到多个单位的切片缓存数据,当用户请求搜索的时间为任意时间段时,若能将请求搜索的时间以天为单位进行切片得到多个单位的切片查询请求,则将多个单位的切片查询请求从所述缓存中命中多个单位的切片缓存数据,缓存中的数据能很好的被重复利用,节省搜索服务器的网络资源,缓解网络拥堵。对于以天为单位进行切片得到的切片查询请求中有非预设单位的切片查询请求,则依据现有的搜索技术对所述非预设单位的切片查询请求进行搜索,由于非预设单位的切片查询请求中的搜索时间单位小于1天,故依据现有的搜索技术进行搜索时耗时也较小,因而能有效地缩短搜索时间。

其次,本发明所述利用切片查询缓存进行搜索加速的装置20,关联所述搜索请求与从所述搜索服务器中搜索的所述搜索结果;及将所述搜索请求及对应的所述搜索结果存储到所述缓存中,能够便于用户再次对所述关键词进行搜索时直接从所述缓存中提取。最后,根据时间顺序对所述多个切片查询请求及缓存中的多个切片缓存结果进行排序,可以避免对每一个切片查询请求与每一个切片缓存结果进行一一匹配,进而进一步的缩短了缓存查询时间。

最后应当说明的是,本发明切片缓存并不限于上述列举的以预设单位时间为切片依据,还可以适用于其他形式的切片,例如,数量等。当然,本发明也不限于上述列举的一次切片缓存,还可以是多次的切片缓存,例如,预先设置两个缓存服务器,其中一个缓存服务器根据第一预设切片单位进行切片,另一个缓存服务器根据第二预设切片单位进行切片,所述第一预设切片单位大于所述第二预设切片单位,本发明在此不再详细阐述。

上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,双屏设备,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分。

如图3所示,是实现本发明所述搜索方法的服务器的硬件结构示意图。

在本发明较佳实施例中,所述服务器3包括存储器31、至少一个处理器32、至少一条通信总线33。

本领域技术人员应该了解,图3示出的双屏设备的结构并不构成本发明实施例的限定,既可以是总线型结构,也可以是星形结构,所述服务器3还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置。

在一些实施例中,所述服务器3包括一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的双屏设备,其硬件包括但不限于微处理器、专用集成电路、可编程门阵列、数字处理器、嵌入式设备等。所述服务器3还可包括用户设备,所述用户设备包括但不限于任何一种可与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(personaldigitalassistant,pda)等任何具备双屏的的电子产品等。

需要说明的是,所述服务器3仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。

在一些实施例中,所述存储器31用于存储程序代码和各种数据,例如安装在所述服务器3中的信息保存系统10,并在服务器3的运行过程中实现高速、自动地完成程序或数据的存取。所述存储器31包括只读存储器(read-onlymemory,rom)、随机存储器(randomaccessmemory,ram)、可编程只读存储器(programmableread-onlymemory,prom)、可擦除可编程只读存储器(erasableprogrammableread-onlymemory,eprom)、一次可编程只读存储器(one-timeprogrammableread-onlymemory,otprom)、电子擦除式可复写只读存储器(electrically-erasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。

在一些实施例中,所述至少一个处理器32可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(centralprocessingunit,cpu)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述至少一个处理器32是所述服务器3的控制核心(controlunit),利用各种接口和线路连接整个服务器3的各个部件,通过运行或执行存储在所述存储器31内的程序或者模块,以及调用存储在所述存储器31内的数据,以执行服务器3的各种功能和处理数据,例如执行搜索装置20。

在一些实施例中,所述至少一条通信总线33被设置为实现所述存储器31、所述至少一个处理器32等之间的连接通信。

尽管未示出,所述服务器3还可以包括给各个部件供电的电源(比如电池),优选的,电源可以通过电源管理系统与所述至少一个处理器32逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述服务器3还可以包括多种传感器、蓝牙模块、wi-fi模块、摄像头等,在此不再赘述。

应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。

在进一步的实施例中,结合图1,所述至少一个处理器32可执行所述服务器3的操作系统以及安装的各类应用程序(如所述的搜索装置20)、程序代码等,例如,上述的各个模块,包括:接收模块201、切片模块202、判断模块203、获取模块204、搜索模块205、排序模块206及关联模块207。

具体地,所述至少一个处理器32对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。

尽管上述实施例是将本申请方案实施于诸如搜索服务器(搜索服务器)的独立组件上,通过搜索服务器这样的独立服务器来完成从搜索请求到分片查询请求的转换以及实现缓存的查询和缓存结果的提取,但本申请并不对此作任何限制,而是还可以将本申请方案作为一个组成模块实施于网站服务系统上的诸如web服务器、移动客户端服务器、搜索服务器、缓存服务器的各种服务器设备组成的整个系统中。另外,除了移动互联网服务器和web服务器之外,服务器系统还可以包括针对本领域已知或未来开发的任意其它显示方式的其它服务器。此外,尽管在上述示出的搜索服务器中设置有缓存数据库,但是还可以设置一个缓存服务器,作为一个独立模块或组件与所述搜索服务器组合成一个系统。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

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