数据检索方法及装置
技术领域
本发明涉及信息技术领域,尤其涉及一种数据检索方法及装置。
背景技术
目前技术服务商所提供的数据检索服务底层技术一般使用自研或开源搜索引擎,如ElasticSearch,或基于大数据组件Hive、Spark等完成数据的检索任务。因为数据检索产品和数据存储方式是一一对应的关系,所以用户在选择检索数据的产品之前,就需要选择对应的存储方式,而不能任意调整。
这些服务商一般只针对同一数据源的数据检索,无法快速、统一的处理针对多数据源的数据检索需求。例如,阿里云的日志搜索服务是针对实时数据一站式服务。
由于数据源单一,用户只能在多种数据源中选择一种来存储。每个产品作为独立的产品存在,没有做融合。现有服务提供商比较倾向于单一的数据存储方案,一方面组件便于维护减少人力投入,另一方面架构设计比较简单,只需要选择针对该存储的检索工具。但是这造成的后果是要么牺牲检索的效率,要么为了保证成本减少数据存储的时间。如果选择多存储方式,一般会针对每个存储方式开放对应的检索工具。
发明内容
本发明实施例提供一种数据检索方法及装置,用于至少解决上述技术问题之一。
第一方面,本发明实施例提供一种数据检索方法,包括:根据接收到的数据检索请求确定用于从数据源中进行数据检索的多个检索任务,所述多个检索任务对应于至少一种搜索引擎;接收所述至少一种搜索引擎执行所述多个检索任务得到的多个检索结果;推送所述多个检索结果。
第二方面,本发明实施例提供一种数据检索装置,包括:
检索任务确定模块,用于根据接收到的数据检索请求确定用于从数据源中进行数据检索的多个检索任务,所述多个检索任务对应于至少一种搜索引擎;
检索结果接收模块,用于接收所述至少一种搜索引擎执行所述多个检索任务得到的多个检索结果;
检索结果推送模块,用于推送所述多个检索结果。
第三方面,本发明实施例提供一种存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述任一项数据检索方法。
第四方面,提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明上述任一项数据检索方法。
第五方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项数据检索方法。
基于本发明的实施例为用户提供了统一的数据检索接口,用户可以通过该统一的检索接口访问近期和长期数据,提供了更加友好的用户交互界面,用户不用关心底层存储和使用的查询引擎等细节,提升了用户体验。此外,由于本发明实时例的方法能够单一访问接口实现对不同搜索引擎的调用以访问不同存储类型的数据源,所以使得用户能够同时兼顾检索效率和数据存储成本两个因素来存储数据,从而满足了用户对高效检索数据和长期存储数据的需求。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的数据检索方法的一实施例的流程图;
图2为一种可实施本发明的数据检索方法的架构图;
图3为本发明中的解析用户请求并下发任务的一实施例的流程图;
图4为本发明的数据检索方法的另一实施例的流程图;
图5为本发明的数据检索方法的又一实施例的流程图;
图6为本发明的数据检索方法的再一实施例的流程图;
图7为本发明的数据检索装置的一实施例的原理框图;
图8为本发明中的检索任务确定模块的一实施例的原理框图;
图9为本发明中的检索结果推送模块的一实施例的原理框图;
图10为本发明的数据检索装置的另一实施例的原理框图;
图11为本发明的电子设备的一实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
在本发明中,“模块”、“装置”、“系统”等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,元件可以、但不限于是运行于处理器的过程、处理器、对象、可执行元件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是元件。一个或多个元件可在执行的过程和/或线程中,并且元件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。元件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地系统、分布式系统中另一元件交互的,和/或在因特网的网络通过信号与其它系统交互的数据的信号通过本地和/或远程过程来进行通信。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明的数据检索方法及装置应用于各种数据检索场景,针对于不同的数据检索场景,我们将数据分为:
近期数据:一般为实时、近7天、近1个月、近3个月的数据,需要亚秒级返回搜索结果;和
长期数据:超过3个月的数据,需要在秒级返回搜索结果。
根据数据存储的成本从内存、SSD、HDD依次递减,其检索效率也依次递减,一般会将近期数据存放在内存中,以加速查询,而长期数据一般数据量都比较大会在PB级以上,一般选择存放在HDD中,降低成本。因此,为了即保证对数据查询的速度,又降低了数据存储的成本,本发明实施例所采取的数据存储方式为:基于时间片分片的策略处理数据存储,将近期数据导入ElasticSearch,长期数据则写入HDFS(Hadoop Distributed File SystemHadoop,文件分布式系统,可适用于Spark-SQL进行数据搜索,Spark-SQL是基于Spark的数据检索引擎,可查询Hive结构化数据和基于Parquet等存储格式的文件);其中,ElasticSearch是一个基于Lucene的搜索服务器,基于开源搜索引擎的数据检索引擎;HDFS的全写为:HadoopDistributed File System Hadoop,文件分布式系统。
如图1所示,本发明的实施例提供一种数据检索方法,包括:
S10、根据接收到的数据检索请求确定用于从数据源中进行数据检索的多个检索任务,所述多个检索任务对应于至少一种搜索引擎。
S20、接收所述至少一种搜索引擎执行所述多个检索任务得到的多个检索结果;
S30、推送所述多个检索结果。
在本实施例中,检索任务指的是选择利用适应的搜索引擎检索所需要查询的数据。
如果数据检索请求的数据内容包括了近期数据和长期数据,则所确定的多个检索任务用于检索近期数据和长期数据,此时对应于检索任务的搜索引擎至少包括ElasticSearch和Spark-SQL。
如果用户所发送的数据检索请求仅请求近期数据,则所确定的多个检索任务只用于检索近期数据,此时对应于检索任务的搜索引擎为ElasticSearch。
如果用户所发送的数据检索请求仅请求长期数据,则所确定的多个检索任务只用于检索长期数据,此时对应于检索任务的搜索引擎为Spark-SQL。
基于本发明的实施例为用户提供了统一的数据检索接口,用户可以通过该统一的检索接口访问近期和长期数据,提供了更加友好的用户交互界面,用户不用关心底层存储和使用的查询引擎等细节,提升了用户体验。此外,由于本发明实时例的方法能够单一访问接口实现对不同搜索引擎的调用以访问不同存储类型的数据源,所以使得用户能够同时兼顾检索效率和数据存储成本两个因素来存储数据,从而满足了用户对高效检索数据和长期存储数据的需求。
如图2所示,为一种可实施本发明的数据检索方法的架构图,主要由如下几部分构成:
API代理程序,API Proxy,此模块主要用于统一接收用户检索请求,统一用户查询的协议,同时也会根据每个请求及对应数据的存储情况,确认对应的检索策略,将请求分发到对应的搜索引擎中执行。
元数据存储引擎,MetaData,一般可以使用MySQL等结构化存储完成,主要存放数据的存储信息及对应的分片规则(例如,按天分片或者按小时分片等)等,用于与API代理程序联合确定每个请求对应的数据的存储情况以及确认对应的检索策略。
ElasticSearch:基于开源搜索引擎的数据检索引擎;ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
Spark-SQL:基于Spark的数据检索引擎,可查询Hive结构化数据和基于Parquet等存储格式的文件;
其它数据引擎(QE-etc):可横向扩展的其他数据检索引擎;
消息队列(MQ),各检索引擎获取的结果通过统一的封装后,统一写入MQ中,以便API Proxy统一接收返回给用户。
在如图2所示的架构下,用户进行一次数据检索请求主要分为3个阶段:1.API代理程序和元数据存储引擎解析用户请求并下发任务。
2.ElasticSearch、Spark-SQL等搜索引擎执行检索任务。
3.消息队列和API代理程序实现合并各引擎检索结果并返回最终结果。
如图3所示,在一些实施例中,解析用户请求并下发任务包括以下步骤:
API Proxy在接收到用户请求后,对其进行解析以从用户请求中提取检索数据源及时间段信息等关键信息。
根据解析结果判断用户请求中是否包含了时间段信息;
若用户请求中包含时间段信息,则根据设定策略生成任务列表;示例性地,时间段信息可以是2018年1月1日至2018年11月1日,根据该时间段信息按照设定策略切分任务,例如,以天为单位进行数据检索(即,以时间段信息期间的时间中的每一天生成一个检索任务,用于检索这一天的数据);
若用户请求中不含时间段信息,则认为用户需要从全量数据中检索信息,任务列表需要根据该数据源所有时间片生成(从当前项目开始产生历史数据起算至当前时间的所有数据);
生成任务列表后,API Proxy需要将任务分别发送到对应的引擎中执行,直至任务列表清空,执行引擎的选择通过存储在Meta表中的规则决定。在一些实施例中,还包括每一个任务根据其数据源、时间分片等信息通过指定的规则生成一个唯一的任务编码用于后续任务的跟踪。
在一些实施例中,在API Proxy在完成任务分发后,开始订阅指定的MQ信息,接收各执行任务返回的检索数据,API Proxy根据时间分片的指定顺序,逐个分片拼装数据,若按指定顺序分片完整,则立即向用户推动截至当前分片的数据,随后继续等待剩余数据,直至所有数据推送完毕;
若分片顺序中有不完整的分片数据,Proxy需要缓存时间分片顺序靠后但提前到达的数据。
若请求中涉及部分需要对最终结果做统一处理的逻辑,则会在所有分片数据返回前,一直阻塞推送步骤。
如图4所示,在本发明数据检索方法的一些实施例中,所述根据接收到的数据检索请求确定用于从数据源中进行数据检索的多个检索任务包括:
S11、解析所述数据检索请求以确定是否包含时间段信息,所述时间段信息包括需要检索的数据的起始时间点和截止时间点;
S12、当所述数据检索请求中包含时间段信息时,确定数据源分类时间点与所述起始时间点和截止时间点的先后关系;其中,当前时间点到所述数据源分类时间点之间的数据为近期数据,所述数据源分类时间点之前的数据为长期数据;
S13、当所述数据源分类时间点早于所述截止时间点时,生成用于第一搜索引擎执行的多个检索任务;此时,可以确定需要检索的数据为近期数据,并且所确定的多个检索任务是用于检索所确定的近期数据的。
S14、当所述数据源分类时间点位于所述起始时间点和截止时间点之间时,针对所述起始时间点至所述数据源分类时间点之间的数据生成用于第一搜索引擎执行的多个检索任务,针对所述数据源分类时间点至所述截止时间点之间的数据生成用于第二搜索引擎执行的多个检索任务;
此时,确定所述需要检索的数据同时包含近期数据和长期数据,具体地:所述起始时间点至所述数据源分类时间点之间的数据为近期数据,相应的生成的多个检索任务用于检索所确定的近期数据;
所述数据源分类时间点至所述截止时间点之间的数据为长期数据,相应的生成的多个检索任务用于检索所确定的长期数据;
S15、当所述数据源分类时间点晚于所述起始时间点时,生成用于第二搜索引擎执行的多个检索任务;此时,可以确定需要检索的数据为长期数据,并且所确定的多个检索任务是用于检索所确定的长期数据的;
S12′、当所述数据检索请求中不包含所述时间段信息时,针对当前时间点至所述数据源分类时间点之间的数据生成用于第一搜索引擎执行的多个检索任务,针对所述数据源分类时间点之前的数据生成用于第二搜索引擎执行的多个检索任务。
如图5所示,在本发明数据检索方法的一些实施例中,所述推送所述多个检索结果包括:
S31、将所述多个检索结果生成消息队列;示例性地,消息队列中可以有500个检索结果。
S32、从所述消息队列中获取一个检索结果,并计数一次;示例性地,在每一次从消息队列中获取检索结果前,判断该消息队列是否已空,如果判断结果表明消息队列已空,则推送当前已经获得的所有的检索结果。
S33、判断计数次数是否超过设定阈值;设定阈值可以设置为50;
S34、如果否,则跳转至步骤S32;
S35、如果是,则推送当前已经获取的所有检索结果;
S36、将所述计数次数置零,并跳转至步骤S32。
现有技术中接口返回结果的形式单一,通过长连接串行返回,一次将所要查询的请求全部返回给用户;但是发明人在实际的使用过程中发现,很多时候靠后的数据虽然用户发起了查询,但实际上并不关注,前端翻页过程中可能都不会翻到后面页码的结果,因此采用本实施了的方法优化了查询任务的分发策略和接口返回数据的策略;一方面避免了一次全部返回所有用户请求的数据所导致的延时问题(逐步通过部分的返回能够更加及时的响应用户请求),另一方面也可以省去不必要的计算开资及时间成本(由于给出但用户并不关注的内容导致)。
如图6所示,在本发明数据检索方法的一些实施例中,所述数据检索请求包含有检索数据源信息;所述方法还包括:
根据每一个检索任务的检索数据源信息和时间段信息生成跟踪编码;
在所述推送当前已经获取的所有检索结果之前还包括:
S3501、根据所述每一个检索任务的跟踪编码,判断所述当前已经获取的所有检索结果是否构成完整数据;
S3502、当判定所述当前已经获取的所有检索结果构成完整数据时,执行步骤S35。
当前,基于大数据集群的搜索引擎各种各样,每个搜索引擎都有针对自身优化的存储引擎。在选择存储及检索的过程中,需要综合考虑数据量、检索效率、存储成本、容错等一系列问题。随着业务的发展,平台也将会引入更多的技术来解决数据存储和检索的问题,但是,无论如何,后端服务的更新和扩展,应该堆目标用户将接入难度和变更降低到最小。
本专利通过统一的策略,屏蔽用户检索请求同底层实现细节和各差异化的数据源的检索技术带来的影响,而且能充分综合利用各存储、检索系统的优势完成用户的数据检索需求。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作合并,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
如图7所示,本发明的实施例还提供一种数据检索装置700,包括:
检索任务确定模块710,用于根据接收到的数据检索请求确定用于从数据源中进行数据检索的多个检索任务,所述多个检索任务对应于至少一种搜索引擎;
检索结果接收模块720,用于接收所述至少一种搜索引擎执行所述多个检索任务得到的多个检索结果;
检索结果推送模块730,用于推送所述多个检索结果。
基于本发明的实施例为用户提供了统一的数据检索接口,用户可以通过该统一的检索接口访问近期和长期数据,提供了更加友好的用户交互界面,用户不用关心底层存储和使用的查询引擎等细节,提升了用户体验。此外,由于本发明实时例的方法能够单一访问接口实现对不同搜索引擎的调用以访问不同存储类型的数据源,所以使得用户能够同时兼顾检索效率和数据存储成本两个因素来存储数据,从而满足了用户对高效检索数据和长期存储数据的需求。
如图8所示,在一些实施例中,所述检索任务确定模块710包括:
解析模块单元711,用于解析所述数据检索请求以确定是否包含时间段信息,所述时间段信息包括需要检索的数据的起始时间点和截止时间点;
时间点确定单元712,用于当所述数据检索请求中包含时间段信息时,确定数据源分类时间点与所述起始时间点和截止时间点的先后关系;其中,当前时间点到所述数据源分类时间点之间的数据为近期数据,所述数据源分类时间点之前的数据为长期数据;
第一检索任务生成单元713,用于当所述数据源分类时间点早于所述截止时间点时,生成用于第一搜索引擎执行的多个检索任务;
第二检索任务生成单元714,用于当所述数据源分类时间点位于所述起始时间点和截止时间点之间时,针对所述起始时间点至所述数据源分类时间点之间的数据生成用于第一搜索引擎执行的多个检索任务,针对所述数据源分类时间点至所述截止时间点之间的数据生成用于第二搜索引擎执行的多个检索任务;
第三检索任务生成单元715,用于当所述数据源分类时间点晚于所述起始时间点时,生成用于第二搜索引擎执行的多个检索任务;
第四检索任务生成单元716,用于当所述数据检索请求中不包含所述时间段信息时,针对当前时间点至所述数据源分类时间点之间的数据生成用于第一搜索引擎执行的多个检索任务,针对所述数据源分类时间点之前的数据生成用于第二搜索引擎执行的多个检索任务。
如图9所示,在一些实施例中,所述检索结果推送模块730包括:
队列生成单元731,用于将所述多个检索结果生成消息队列;
获取单元732,用于从所述消息队列中获取一个检索结果,并计数一次;
判断单元733,用于判断计数次数是否超过设定阈值,
跳转单元734,用于当所述计数次数没有超过所述设定阈值时,跳转至所述获取单元;
推送单元735,用于当所述计数次数超过所述设定阈值时,推送当前已经获取的所有检索结果;
置零跳转单元736,用于将所述计数次数置零,并跳转至所述获取单元。
在一些实施例中,所述数据检索请求包含有检索数据源信息;如图10所示,所述数据检索装置700还包括:
跟踪编码生成模块740,用于根据每一个检索任务的检索数据源信息和时间段信息生成跟踪编码;
完整性判断模块750,用于在所述推送当前已经获取的所有检索结果之前,根据所述每一个检索任务的跟踪编码,判断所述当前已经获取的所有检索结果是否构成完整数据;
跳转模块760,用于当判定所述当前已经获取的所有检索结果构成完整数据时,跳转至所述推送单元。
在一些实施例中,本发明实施例提供一种非易失性计算机可读存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述任一项数据检索方法。
在一些实施例中,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项数据检索方法。
在一些实施例中,本发明实施例还提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行数据检索方法。
在一些实施例中,本发明实施例还提供一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时数据检索方法。
上述本发明实施例的数据检索方法可用于执行本发明实施例的数据检索方法,并相应的达到上述本发明实施例的实现数据检索方法所达到的技术效果,这里不再赘述。本发明实施例中可以通过硬件处理器(hardware processor)来实现相关功能模块。
图11是本申请另一实施例提供的执行数据检索方法的电子设备的硬件结构示意图,如图11所示,该设备包括:
一个或多个处理器1110以及存储器1120,图11中以一个处理器1110为例。
执行数据检索方法的设备还可以包括:输入装置1130和输出装置1140。
处理器1110、存储器1120、输入装置1130和输出装置1140可以通过总线或者其他方式连接,图11中以通过总线连接为例。
存储器1120作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的数据检索方法对应的程序指令/模块。处理器1110通过运行存储在存储器1120中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例数据检索方法。
存储器1120可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据数据检索装置的使用所创建的数据等。此外,存储器1120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器1120可选包括相对于处理器1110远程设置的存储器,这些远程存储器可以通过网络连接至数据检索装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置1130可接收输入的数字或字符信息,以及产生与数据检索装置的用户设置以及功能控制有关的信号。输出装置1140可包括显示屏等显示设备。
所述一个或者多个模块存储在所述存储器1120中,当被所述一个或者多个处理器1110执行时,执行上述任意方法实施例中的数据检索方法。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
本申请实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。