一种处理分页数据的方法、装置和服务器与流程

文档序号:12470165阅读:329来源:国知局
一种处理分页数据的方法、装置和服务器与流程

本发明实施例涉及但不限于数据处理技术领域,尤指一种处理分页数据的方法、装置和服务器。



背景技术:

服务器产品最基本的功能就是读取数据库中的数据,从数据库中读取到的数据按照产品需求在客户端中进行展示。而在同一个页面中需要展示的数据往往较多,所以基本都需要用到分页展示的功能。

分页展示就好比一本书,一本书的字数有几十万,在一页纸上肯定是显示不完的,所以要分很多页进行显示。数据库中的数据总是在变化,而用户的分页需求是在不同时刻进行的,这样就会导致一个问题,当用户获取不同页的数据时,如果数据库中的数据已经发生了变化,那么分页数据很可能会发生重复。例如一个数据库包含6条数据,分别是A、B、C、D、E、F、G,而一页分页数据展示3条数据,那么,获取到的第一页分页数据是A、B、C。而在获取第二页分页数据的时候,数据库中的数据刚好已经发生了变化,变成了H、I、A、B、C、D、E、F、G,那么此时第二页分页数据就会是B、C、D。这样,用户看到的数据就是A、B、C、B、C、D,其中,B和C即为重复数据,这样会导致用户体验很差。

目前,有两种方式可以解决上述分页数据重复的问题,一种是对返回的分页数据在客户端进行去重;另一种是对返回的分页数据在服务器中进行去重。上述两种方式均是将返回的分页数据中与之前返回的分页数据进行比对,然后再把重复的数据去除,这样的处理存在获取分页数据的效率低下,返回的分页数据所包含的数据的数量(条数)变少等问题,用户体验并不理想。



技术实现要素:

本申请提供了一种处理分页数据的方法、装置和服务器,能够提高获取分页数据的效率以及最大程度的避免分页数据存在重复的问题,从而提升用户体验。

为了达到本申请目的,本发明实施例提供了一种处理分页数据的方法,包括:

服务器按照第一预设分页条件对数据库中的数据进行分页处理以获取多页第一分页数据;

当服务器接收到来自客户端的请求时,服务器判断搜索引擎是否可用;

当服务器判断出搜索引擎可用时,服务器从搜索引擎中获取与接收到的请求对应的第一分页数据的第一身份标识列表;

服务器通过搜索引擎获取与获得的第一身份标识列表对应的第一数据列表;

服务器将获得的第一数据列表发送给该客户端。

可选地,该方法之前还包括:所述服务器周期性的获取所述搜索引擎对数据库的数据所建立的第一字母索引。

可选地,所述服务器周期性的获取所述搜索引擎对数据库的数据所建立的第一字母索引包括:

所述服务器控制所述搜索引擎间隔预设时长对所述数据库的数据采用增量更新的方式建立所述第一字母索引。

可选地,所述服务器按照第一预设分页条件对数据库中的数据进行分页处理以获取多页第一分页数据包括:

所述服务器获取当前周期所述搜索引擎所建立的第一字母索引所包含的所述数据库中的数据;

所述服务器按照所述第一预设分页条件对获得的所述第一字母索引所包含的所述数据库中的数据进行分页处理以获取所述多页第一分页数据。

可选地,在所述获取所述多页第一分页数据之后,该方法还包括:

所述服务器确定分页处理后的每页第一分页数据所包含的数据的身份标识。

可选地,所述服务器从搜索引擎中获取与接收到的请求对应的第一分页数据的第一身份标识列表包括:

所述服务器根据所述搜索引擎建立的所述第一字母索引确定与接收到的请求对应的第一分页数据所包含的数据的身份标识;

所述服务器将确定出的与接收到的请求对应的第一分页数据所包含的数据的身份标识按照与所述第一分页数据所包含的数据在所述第一分页数据中的位置顺序相同的位置顺序排列以组成所述第一身份标识列表。

可选地,所述服务器通过搜索引擎获取与获得的第一身份标识列表对应的第一数据列表包括:

所述搜索引擎从与所述第一身份标识列表所包含的身份标识对应的缓存处理器中获取所述第一身份标识列表所包含的身份标识对应的数据;

所述服务器将所述搜索引擎获得的所述第一身份标识列表所包含的身份标识对应的数据按照与所述第一身份标识列表所包含的身份标识在所述第一身份标识列表中的位置顺序相同的位置顺序排列以组成所述第一数据列表。

可选地,当所述服务器判断出所述搜索引擎不可用时,该方法还包括:

所述服务器确定与所述请求对应的接口在缓存处理器中是否存在所述接口的预设阈值数量的数据的第二身份标识列表;

当确定出与所述请求对应的接口在所述缓存处理器中存在所述接口的所述预设阈值数量的数据的第二身份标识列表时,所述服务器根据第二预设分页条件从所述第二身份标识列表中确定与所述请求对应的第三身份标识列表;所述服务器从所述缓存处理器中获取与所述第三身份标识列表对应的第第二数据列表并将获得的所述第二数据列表发送给所述客户端;

当确定出与所述请求对应的接口在所述缓存处理器中不存在所述接口的所述预设阈值数量的数据的第二身份标识列表时,所述服务器从所述数据库中获取所述预设阈值数量的与所述请求对应的数据;所述服务器按照所述第二预设分页条件对所述获得的所述预设阈值数量的与所述请求对应的数据进行分页以获取多页第二分页数据;所述服务器将与所述请求对应的第二分页数据发送给所述客户端。

本发明实施例还提供了一种处理分页数据的装置,包括:分页模块、接收模块、判断模块、获取模块和发送模块;其中,

分页模块,用于按照第一预设分页条件对数据库中的数据进行分页处理以获取多页第一分页数据;

接收模块,用于当接收到来自客户端的请求时,通知判断模块;

判断模块,用于判断搜索引擎是否可用;当判断出搜索引擎可用时,通知获取模块;

获取模块,用于接收到来自判断模块的通知,从搜索引擎中获取与接收到的请求对应的第一分页数据的第一身份标识列表;通过搜索引擎获取与获得的第一身份标识列表对应的第一数据列表;

发送模块,用于将获得的第一数据列表发送给该客户端。

可选地,所述获取模块,还用于周期性的获取所述搜索引擎对数据库的数据所建立的第一字母索引。

可选地,所述获取模块周期性的获取所述搜索引擎对数据库的数据所建立的第一字母索引包括:控制所述搜索引擎间隔预设时长对所述数据库的数据采用增量更新的方式建立所述第一字母索引。

可选地,所述分页模块具体用于:

获取当前周期所述搜索引擎所建立的第一字母索引所包含的所述数据库中的数据;

按照所述第一预设分页条件对获得的所述第一字母索引所包含的所述数据库中的数据进行分页处理以获取所述多页第一分页数据。

可选地,所述分页数据,还用于确定分页处理后的每页第一分页数据所包含的数据的身份标识。

可选地,所述获取模块从搜索引擎中获取与接收到的请求对应的第一分页数据的第一身份标识列表包括:

根据所述搜索引擎建立的所述第一字母索引确定与接收到的请求对应的第一分页数据所包含的数据的身份标识;

将确定出的与接收到的请求对应的第一分页数据所包含的数据的身份标识按照与所述第一分页数据所包含的数据在所述第一分页数据中的位置顺序相同的位置顺序排列以组成所述第一身份标识列表。

可选地,所述获取模块通过搜索引擎获取与获得的第一身份标识列表对应的第一数据列表包括:

所述搜索引擎从与所述第一身份标识列表所包含的身份标识对应的缓存处理器中获取所述第一身份标识列表所包含的身份标识对应的数据;

将所述搜索引擎获得的所述第一身份标识列表所包含的身份标识对应的数据按照与所述第一身份标识列表所包含的身份标识在所述第一身份标识列表中的位置顺序相同的位置顺序排列以组成所述第一数据列表。

可选地,该装置还包括处理模块;

所述判断模块,还用于当判断出搜索引擎不可用时,通知所述处理模块;相应地,

所述处理模块,用于接收到来自所述判断模块的通知,确定与所述请求对应的接口在缓存处理器中是否存在所述接口的预设阈值数量的数据的第二身份标识列表;

当确定出与所述请求对应的接口在所述缓存处理器中存在所述接口的所述预设阈值数量的数据的第二身份标识列表时,根据第二预设分页条件从所述第二身份标识列表中确定与所述请求对应的第三身份标识列表;从所述缓存处理器中获取与所述第三身份标识列表对应的第第二数据列表并将获得的所述第二数据列表发送给所述客户端;

当确定出与所述请求对应的接口在所述缓存处理器中不存在所述接口的所述预设阈值数量的数据的第二身份标识列表时,从所述数据库中获取所述预设阈值数量的与所述请求对应的数据;按照所述第二预设分页条件对所述获得的所述预设阈值数量的与所述请求对应的数据进行分页以获取多页第二分页数据;将与所述请求对应的第二分页数据发送给所述客户端。

本发明实施例还提供了一种服务器,包括:搜索引擎以及如权利要求9-16任一项所述的装置;其中,

搜索引擎,用于获取与上述装置接收到的请求对应的第一分页数据的第一身份标识列表;获取与获得的第一身份标识列表对应的第一数据列表。

可选地,该服务器还包括缓存处理器,用于存储数据库中的数据以及数据库中的数据的第一身份标识列表和第二身份标识列表。

本发明实施例包括:服务器按照第一预设分页条件对数据库中的数据进行分页处理以获取多页第一分页数据;当服务器接收到来自客户端的请求时,服务器判断搜索引擎是否可用;当服务器判断出搜索引擎可用时,服务器从搜索引擎中获取与接收到的请求对应的第一分页数据的第一身份标识ID列表;服务器通过搜索引擎获取与获得的第一ID列表对应的第一数据列表;服务器将获得的第一数据列表发送给该客户端。本发明实施例提高了获取分页数据的效率以及最大程度的避免了分页数据存在重复的问题,从而提升了用户体验。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本申请处理分页数据的方法的流程图;

图2为本申请增量更新字典索引的方法的流程图;

图3为本申请处理分页数据的方法的实施例的流程图;

图4为本申请处理分页数据的装置的结构示意图;

图5为本申请服务器的结构示意图;

图6为本申请服务器的实施例的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

图1为本申请处理分页数据的方法的流程图,如图1所示,包括:

步骤100:服务器按照第一预设分页条件对数据库中的数据进行分页处理以获取多页第一分页数据。

其中,服务器周期性的按照第一预设分页条件对数据库中的数据进行分页处理以获取多页第一分页数据。需要说明的是,本步骤保证了在一个周期内每页第一分页数据所包含的数据的数量相同并且保证了任何一页第一分页数据中均不包含重复的数据。

可选地,该方法之前还包括:服务器周期性的获取搜索引擎对数据库的数据所建立的第一字母索引;包括:服务器控制搜索引擎间隔预设时长对数据库的数据采用增量更新的方式建立第一字母索引。

其中,搜索引擎设置在服务器中;搜索引擎可以是Solr(是一个独立的企业级搜索应用服务器),也可以是Elasticsearch(是一个基于全文搜索引擎(Lucene)的搜索服务器),或者是具有本申请中搜索引擎所具有的功能的其它搜索引擎。

其中,预设时长可以由运维人员根据自身经验进行设定,也可以由系统设定为一个默认值,如30分钟,或45分钟,或60分钟等。其中,预设时长即为一个周期的时长。

可选地,在获取搜索引擎对数据库的数据所建立的第一字母索引之前,该方法还包括:服务器记录当前周期内搜索引擎对数据库的数据建立第一字母索引的时刻。

其中,控制搜索引擎间隔预设时长对数据库的数据采用增量更新的方式建立第一字母索引,如图2所示,包括:

步骤201:搜索引擎获取已记录的当前预设时长内建立第一字母索引的时刻。

步骤202:搜索引擎在数据库的数据中查找存储时刻在已记录的当前预设时长内建立第一字母索引的时刻之后的数据。

需要说明的是,数据库的数据被写入数据库时会记录其存储时刻。

步骤203:搜索引擎对步骤202查找到的数据建立第二字母索引。

需要说明的是,关于控制搜索引擎如何建立第一字母索引或第二字母索引属于本领域技术人员所熟知的惯用技术手段,在此不再赘述,并不用来限制本申请。

步骤204:搜索引擎将第二字母索引添加至第一字母索引中。

其中,第一字母索引的索引值包括:数据的ID,和/或数据的名称,和/或数据的分类;第二字母索引的索引值包括:数据的ID,和/或数据的名称,和/或数据的分类。

其中,服务器按照第一预设分页条件对数据库中的数据进行分页处理以获取多页第一分页数据包括:

服务器获取当前周期搜索引擎所建立的第一字母索引所包含的数据库中的数据;

服务器按照第一预设分页条件对获得的第一字母索引所包含的数据库中的数据进行分页处理以获取多页第一分页数据。可选地,在获取多页第一分页数据之后,该方法还包括:服务器确定分页处理后的每页第一分页数据所包含的数据的ID。

其中,第一预设分页条件包括每页分页数据所包含的数据的数量(条数)以及每页分页数据所包含的数据的位置顺序。例如,根据每页分页数据所包含的数据的数量以及数据的总数量可以确定需要分页的页码的数量,以及单页需要获取的数据的条数,例如有100条数据,每页包含20条数据,则需要分为5页第一分页数据,页码依次为1、2、3、4、5,其中,页码为1对应的第一分页数据所包含的数据的ID是从1到20;页码为2对应的第一分页数据所包含的数据的ID是从21到40;页码为3对应的第一分页数据所包含的数据的ID是从41到60;页码为4对应的第一分页数据所包含的数据的ID是从61到80;页码为5对应的第一分页数据所包含的数据的ID是从81到100。需要说明的是,关于如何排列每页第一分页数据所包含的数据的位置顺序,属于本领域技术人员所熟知的惯用技术手段,此处不再赘述,并不用来限制本申请。

步骤101:当服务器接收到来自客户端的请求时,服务器判断搜索引擎是否可用。

其中,客户端的请求中携带有接口信息,即客户端向哪个接口发起的请求。其中,一个接口对应于多条数据。

需要说明的是,关于如何判断搜索引擎是否可用属于本领域技术人员所熟知的惯用技术手段,其具体实现并不用来限制本申请的保护范围,此处不再赘述。

步骤102:当判断出搜索引擎可用时,服务器从搜索引擎中获取与接收到的请求对应的第一分页数据的第一身份标识(ID)列表。

其中,服务器从搜索引擎中获取与接收到的请求对应的第一分页数据的第一ID列表包括:

服务器根据搜索引擎建立的第一字母索引确定与接收到的请求对应的第一分页数据所包含的数据的ID;

服务器将确定出的与接收到的请求对应的第一分页数据所包含的数据的ID按照与第一分页数据所包含的数据在第一分页数据中的位置顺序相同的位置顺序排列以组成第一ID列表。

步骤103:服务器通过搜索引擎获取与获得的第一ID列表对应的第一数据列表。

步骤103具体包括:

搜索引擎从与第一ID列表所包含的ID对应的缓存处理器中获取第一ID列表所包含的ID对应的数据;

服务器将搜索引擎获得的第一ID列表所包含的ID对应的数据按照与第一ID列表所包含的ID在第一ID列表中的位置顺序相同的位置顺序排列以组成第一数据列表。

以应用商店的产品为例,用户需要获取分类为应用的分页数据的第一页数据,从搜索引擎中获取到的第一页数据的ID列表为1,2,,3,然后根据获得的这个ID列表从缓存处理器中,就可以获取应用1、应用2和应用3的数据列表。

步骤104:服务器将获得的第一数据列表发送给该客户端。

可选地,当判断出搜索引擎不可用时,该方法还包括:

服务器确定与请求对应的接口在缓存处理器中是否存在该接口的预设阈值数量的数据的第二ID列表;

当确定出与请求对应的接口在缓存处理器中存在该接口的预设阈值数量的数据的第二ID列表时,服务器根据第二预设分页条件从第二ID列表中确定与请求对应的第三ID列表;服务器从缓存处理器中获取与第三ID列表对应的第第二数据列表并将获得的第二数据列表发送给客户端;

当确定出与请求对应的接口在缓存处理器中不存在该接口的预设阈值数量的数据的第二ID列表时,服务器从数据库中获取预设阈值数量的与请求对应的数据;服务器按照第二预设分页条件对获得的预设阈值数量的与请求对应的数据进行分页以获取多页第二分页数据;服务器将与请求对应的第二分页数据发送给客户端。需要说明的是,本步骤保证了每页第二分页数据所包含的数据的数量相同并且保证了任何一页第二分页数据中均不包含重复的数据。

其中,服务器包括缓存处理器。

其中,预设阈值数量的设定以满足用户的需求而设定,如可以设定为2000,或者是设定为1000,也可以设定为1500等。例如,根据用户的使用习惯,用户在做翻页的时候最多不会超过100页,按照每页20条的数据,那么可以规定一个接口对应的最多数据是2000条,即预设阈值数量可以设定为2000。

其中,第二预设分页条件包括每页分页数据所包含的数据的数量(条数)以及每页分页数据所包含的数据的位置顺序。例如,第二ID列表中包含100个ID,第二预设分页条件为分页的总页数为5,单页需要获取的数据的个数为20,而与请求对应的是获取页码是第2页的数据,那么获取的就是这100个ID中的第21个到第40个的ID,组成的ID列表作为第三ID列表。其中,每一页的ID的起始位置=(页码-1)×单页数据个数+1,每一页的ID的结束位置=起始位置+单页数据个数-1,其中,此处的单页数据个数是每页分页数据所包含的数据的数量。

可选地,在服务器从数据库中获取预设阈值数量的与请求对应的数据之后,该方法还包括:服务器将获得的预设阈值数量的与请求对应的数据的第四ID列表存储在缓存处理器中。或者,

可选地,服务器在将与请求对应的第二分页数据发送给客户端之后还包括:

服务器将每页第二分页数据的第五ID列表存储在缓存处理器中。

本发明实施方式中,通过在一个周期内,服务器按照第一预设分页条件对数据库中的数据进行分页处理以获取多页第一分页数据,当搜索引擎可用时,从搜索引擎中获取与接收到的请求对应的第一分页数据的第一ID列表以及通过搜索引擎获取与获得的第一ID列表对应的第一数据列表,提高了获取分页数据的效率以及最大程度的避免了分页数据存在重复的问题,从而提升了用户体验。

图3为本申请处理分页数据的方法的实施例的流程图,如图3所示,包括:

步骤300:服务器周期性的获取搜索引擎对数据库的数据所建立的第一字母索引。

步骤300具体包括:

服务器控制搜索引擎间隔预设时长对数据库的数据采用增量更新的方式建立第一字母索引。

其中,搜索引擎设置在服务器中;搜索引擎可以是Solr(是一个独立的企业级搜索应用服务器),也可以是Elasticsearch(是一个基于全文搜索引擎(Lucene)的搜索服务器),或者是具有本申请中搜索引擎所具有的功能的其它搜索引擎。

其中,预设时长可以由运维人员根据自身经验进行设定,也可以由系统设定为一个默认值,如30分钟,或45分钟,或60分钟等。其中,预设时长即为一个周期的时长。

其中,控制搜索引擎间隔预设时长对数据库的数据采用增量更新的方式建立第一字母索引,如图2所示,包括:

步骤201:搜索引擎获取已记录的当前预设时长内建立第一字母索引的时刻。

步骤202:搜索引擎在数据库的数据中查找存储时刻在已记录的当前预设时长内建立第一字母索引的时刻之后的数据。

需要说明的是,数据库的数据被写入数据库时会记录其存储时刻。

步骤203:搜索引擎对步骤202查找到的数据建立第二字母索引。

需要说明的是,关于控制搜索引擎如何建立第一字母索引或第二字母索引属于本领域技术人员所熟知的惯用技术手段,在此不再赘述,并不用来限制本申请。

步骤204:搜索引擎将第二字母索引添加至第一字母索引中。

其中,第一字母索引的索引值包括:数据的ID,和/或数据的名称,和/或数据的分类;第二字母索引的索引值包括:数据的ID,和/或数据的名称,和/或数据的分类。

步骤301:服务器记录当前周期内搜索引擎对数据库的数据建立第一字母索引的时刻。

步骤302:服务器按照第一预设分页条件对数据库中的数据进行分页处理以获取多页第一分页数据。

步骤302具体包括:

服务器获取当前周期搜索引擎所建立的第一字母索引所包含的数据库中的数据;

服务器按照第一预设分页条件对获得的第一字母索引所包含的数据库中的数据进行分页处理以获取多页第一分页数据。可选地,在获取多页第一分页数据之后,该方法还包括:服务器确定分页处理后的每页第一分页数据所包含的数据的ID。

其中,第一预设分页条件包括每页分页数据所包含的数据的数量以及每页分页数据所包含的数据的位置顺序。例如,根据每页分页数据所包含的数据的数量以及数据的总数量可以确定需要分页的页码的数量,以及单页需要获取的数据的条数,例如有100条数据,每页包含20条数据,则需要分为5页第一分页数据,页码依次为1、2、3、4、5,其中,页码为1对应的第一分页数据所包含的数据的ID是从1到20;页码为2对应的第一分页数据所包含的数据的ID是从21到40;页码为3对应的第一分页数据所包含的数据的ID是从41到60;页码为4对应的第一分页数据所包含的数据的ID是从61到80;页码为5对应的第一分页数据所包含的数据的ID是从81到100。需要说明的是,关于如何排列每页第一分页数据所包含的数据的位置顺序,属于本领域技术人员所熟知的惯用技术手段,此处不再赘述,并不用来限制本申请。

步骤303:当服务器接收到来自客户端的请求时,服务器判断搜索引擎是否可用。当判断出搜索引擎可用时,转入步骤304;否则,转入步骤307。

其中,客户端的请求中携带有接口信息,即客户端向哪个接口发起的请求。其中,一个接口对应于多条数据。

需要说明的是,关于如何判断搜索引擎是否可用属于本领域技术人员所熟知的惯用技术手段,其具体实现并不用来限制本申请的保护范围,此处不再赘述。

步骤304:服务器从搜索引擎中获取与接收到的请求对应的第一分页数据的第一身份标识(ID)列表。

步骤304具体包括:

服务器根据搜索引擎建立的第一字母索引确定与接收到的请求对应的第一分页数据所包含的数据的ID;

服务器将确定出的与接收到的请求对应的第一分页数据所包含的数据的ID按照与第一分页数据所包含的数据在第一分页数据中的位置顺序相同的位置顺序排列以组成第一ID列表。

步骤305:服务器通过搜索引擎获取与获得的第一ID列表对应的第一数据列表。

步骤305具体包括:

搜索引擎从与第一ID列表所包含的ID对应的缓存处理器中获取第一ID列表所包含的ID对应的数据;

服务器将搜索引擎获得的第一ID列表所包含的ID对应的数据按照与第一ID列表所包含的ID在第一ID列表中的位置顺序相同的位置顺序排列以组成第一数据列表。

以应用商店的产品为例,用户需要获取分类为应用的分页数据的第一页数据,从搜索引擎中获取到的第一页数据的ID列表为1,2,,3,然后根据获得的这个ID列表从缓存处理器中,就可以获取应用1、应用2和应用3的数据列表。

步骤306:服务器将获得的第一数据列表发送给该客户端。

步骤307:服务器确定与请求对应的接口在缓存处理器中是否存在该接口的预设阈值数量的数据的第二ID列表。当确定出与请求对应的接口在缓存处理器中存在该接口的预设阈值数量的数据的第二ID列表时,转入步骤308;否则,转入步骤310。

其中,预设阈值数量的设定以满足用户的需求而设定,如可以设定为2000,或者是设定为1000,也可以设定为1500等。例如,根据用户的使用习惯,用户在做翻页的时候最多不会超过100页,按照每页20条的数据,那么可以规定一个接口对应的最多数据是2000条,即预设阈值数量可以设定为2000。

步骤308:服务器根据第二预设分页条件从第二ID列表中确定与请求对应的第三ID列表。

步骤309:服务器从缓存处理器中获取与第三ID列表对应的第第二数据列表并将获得的第二数据列表发送给客户端。

步骤310:服务器从数据库中获取预设阈值数量的与请求对应的数据。

步骤311:服务器按照第二预设分页条件对获得的预设阈值数量的与请求对应的数据进行分页以获取多页第二分页数据。

其中,第二预设分页条件包括每页分页数据所包含的数据的数量以及每页分页数据所包含的数据的位置顺序。例如,第二ID列表中包含100个ID,第二预设分页条件为分页的总页数为5,单页需要获取的数据的个数为20,而与请求对应的是获取页码是第2页的数据,那么获取的就是这100个ID中的第21个到第40个的ID,组成的ID列表作为第三ID列表。其中,每一页的ID的起始位置=(页码-1)×单页数据个数+1,每一页的ID的结束位置=起始位置+单页数据个数-1,其中,此处的单页数据个数是每页分页数据所包含的数据的数量。

步骤312:服务器将与请求对应的第二分页数据发送给客户端。

其中,服务器包括缓存处理器。

可选地,在服务器从数据库中获取预设阈值数量的与请求对应的数据之后,该方法还包括:服务器将获得的预设阈值数量的与请求对应的数据的第四ID列表存储在缓存处理器中。或者,

可选地,服务器在将与请求对应的第二分页数据发送给客户端之后还包括:

服务器将每页第二分页数据的第五ID列表存储在缓存处理器中。

图4为本申请处理分页数据的装置的结构示意图,如图4所示,包括:分页模块40、接收模块41、判断模块42、获取模块43和发送模块44。其中,

分页模块40,用于按照第一预设分页条件对数据库中的数据进行分页处理以获取多页第一分页数据。

其中,第一预设分页条件包括每页分页数据所包含的数据的数量以及每页分页数据所包含的数据的位置顺序。例如,根据每页分页数据所包含的数据的数量以及数据的总数量可以确定需要分页的页码的数量,以及单页需要获取的数据的条数,例如有100条数据,每页包含20条数据,则需要分为5页第一分页数据,页码依次为1、2、3、4、5,其中,页码为1对应的第一分页数据所包含的数据的ID是从1到20;页码为2对应的第一分页数据所包含的数据的ID是从21到40;页码为3对应的第一分页数据所包含的数据的ID是从41到60;页码为4对应的第一分页数据所包含的数据的ID是从61到80;页码为5对应的第一分页数据所包含的数据的ID是从81到100。需要说明的是,关于如何排列每页第一分页数据所包含的数据的位置顺序,属于本领域技术人员所熟知的惯用技术手段,此处不再赘述,并不用来限制本申请。

接收模块41,用于当接收到来自客户端的请求时,通知判断模块42。

判断模块42,用于判断搜索引擎是否可用;当判断出搜索引擎可用时,通知获取模块43。

其中,搜索引擎可以是Solr(是一个独立的企业级搜索应用服务器),也可以是Elasticsearch(是一个基于全文搜索引擎(Lucene)的搜索服务器),或者是具有本申请中搜索引擎所具有的功能的其它搜索引擎。

其中,客户端的请求中携带有接口信息,即客户端向哪个接口发起的请求。其中,一个接口对应于多条数据。

需要说明的是,关于如何判断搜索引擎是否可用属于本领域技术人员所熟知的惯用技术手段,此处不再赘述,并不用来限制本申请。

获取模块43,用于接收到来自判断模块42的通知,从搜索引擎中获取与接收到的请求对应的第一分页数据的第一身份标识(ID)列表;通过搜索引擎获取与获得的第一ID列表对应的第一数据列表。

其中,获取模块43从搜索引擎中获取与接收到的请求对应的第一分页数据的第一ID列表包括:

根据搜索引擎建立的第一字母索引确定与接收到的请求对应的第一分页数据所包含的数据的ID;

将确定出的与接收到的请求对应的第一分页数据所包含的数据的ID按照与第一分页数据所包含的数据在第一分页数据中的位置顺序相同的位置顺序排列以组成第一ID列表。

其中,获取模块43通过搜索引擎获取与获得的第一ID列表对应的第一数据列表包括:

搜索引擎从与第一ID列表所包含的ID对应的缓存处理器中获取第一ID列表所包含的ID对应的数据;

将搜索引擎获得的第一ID列表所包含的ID对应的数据按照与第一ID列表所包含的ID在第一ID列表中的位置顺序相同的位置顺序排列以组成第一数据列表。

可选地,获取模块43,还用于周期性的获取搜索引擎对数据库的数据所建立的第一字母索引。

其中,获取模块43周期性的获取搜索引擎对数据库的数据所建立的第一字母索引包括:控制搜索引擎间隔预设时长对数据库的数据采用增量更新的方式建立第一字母索引。

其中,预设时长可以由运维人员根据自身经验进行设定,也可以由系统设定为一个默认值,如30分钟,或45分钟,或60分钟等。其中,预设时长即为一个周期的时长。

其中,搜索引擎间隔预设时长对数据库的数据采用增量更新的方式建立第一字母索引包括:

获取已记录的当前预设时长内建立第一字母索引的时刻;

在数据库的数据中查找存储时刻在已记录的当前预设时长内建立第一字母索引的时刻之后的数据;

对查找到的数据建立第二字母索引;

将第二字母索引添加至第一字母索引中。

需要说明的是,数据库的数据被写入数据库时会记录其存储时刻。

其中,第二字母索引的索引值包括:数据的ID,和/或数据的名称,和/或数据的分类。

发送模块44,用于将获得的第一数据列表发送给该客户端。

可选地,该装置还包括记录模块45,用于记录当前周期内搜索引擎对数据库的数据建立第一字母索引的时刻。此时,

获取模块43控制搜索引擎间隔预设时长对数据库的数据采用增量更新的方式建立第一字母索引包括:

通知搜索引擎获取已记录的当前预设时长内建立第一字母索引的时刻;

通知搜索引擎在数据库的数据中查找存储时刻在已记录的当前预设时长内建立第一字母索引的时刻之后的数据;

控制搜索引擎对查找到的数据建立第二字母索引;

将第二字母索引添加至第一字母索引中。此时,

分页模块40具体用于:

获取当前周期搜索引擎所建立的第一字母索引所包含的数据库中的数据;

按照第一预设分页条件对获得的第一字母索引所包含的数据库中的数据进行分页处理以获取多页第一分页数据。

其中,第一字母索引的索引值包括:数据的ID,和/或数据的名称,和/或数据的分类。

其中,第二字母索引的索引值包括:数据的ID,和/或数据的名称,和/或数据的分类

可选地,该装置还包括处理模块46;此时,

判断模块42,还用于当判断出搜索引擎不可用时,通知处理模块46;相应地,

处理模块46,用于接收到来自判断模块42的通知,确定与请求对应的接口在缓存处理器中是否存在该接口的预设阈值数量的数据的第二ID列表;当确定出与请求对应的接口在缓存处理器中存在该接口的预设阈值数量的数据的第二ID列表时,根据第二预设分页条件从第二ID列表中确定与请求对应的第三ID列表;从缓存处理器中获取与第三ID列表对应的第第二数据列表并将获得的第二数据列表发送给客户端;当确定出与请求对应的接口在缓存处理器中不存在该接口的预设阈值数量的数据的第二ID列表时,从数据库中获取预设阈值数量的与请求对应的数据;按照第二预设分页条件对获得的预设阈值数量的与请求对应的数据进行分页以获取多页第二分页数据;将与请求对应的第二分页数据发送给客户端。

其中,缓存处理器属于上述装置所属的服务器。

其中,预设阈值数量的设定以满足用户的需求而设定,如可以设定为2000,或者是设定为1000,也可以设定为1500等。例如,根据用户的使用习惯,用户在做翻页的时候最多不会超过100页,按照每页20条的数据,那么可以规定一个接口对应的最多数据是2000条,即预设阈值数量可以设定为2000。

其中,第二预设分页条件包括每页分页数据所包含的数据的数量以及每页分页数据所包含的数据的位置顺序。例如,第二ID列表中包含100个ID,第二预设分页条件为分页的总页数为5,单页需要获取的数据的个数为20,而与请求对应的是获取页码是第2页的数据,那么获取的就是这100个ID中的第21个到第40个的ID,组成的ID列表作为第三ID列表。其中,每一页的ID的起始位置=(页码-1)×单页数据个数+1,每一页的ID的结束位置=起始位置+单页数据个数-1,其中,此处的单页数据个数是每页分页数据所包含的数据的数量。

可选地,该装置还包括存储模块47,用于在将获得的预设阈值数量的与请求对应的数据的第四ID列表存储在缓存处理器中。或者,

存储模块47,用于将每页第二分页数据的第五ID列表存储在缓存处理器中。

图5为本申请服务器的结构示意图,如图5所示,包括:搜索引擎以及如图4所示的处理分页数据的装置。其中,

搜索引擎,用于获取与上述装置接收到的请求对应的第一分页数据的第一身份标识(ID)列表;获取与获得的第一ID列表对应的第一数据列表。

其中,搜索引擎可以是Solr(是一个独立的企业级搜索应用服务器),也可以是Elasticsearch(是一个基于全文搜索引擎(Lucene)的搜索服务器),或者是具有本申请中搜索引擎所具有的功能的其它搜索引擎。

可选地,搜索引擎还用于对数据库的数据所建立的第一字母索引;包括:间隔预设时长对数据库的数据采用增量更新的方式建立第一字母索引。

其中,搜索引擎设置在服务器中;搜索引擎可以是Solr(是一个独立的企业级搜索应用服务器),也可以是Elasticsearch(是一个基于全文搜索引擎(Lucene)的搜索服务器),或者是具有本申请中搜索引擎所具有的功能的其它搜索引擎。

其中,预设时长可以由运维人员根据自身经验进行设定,也可以由系统设定为一个默认值,如30分钟,或45分钟,或60分钟等。其中,预设时长即为一个周期的时长。

其中,搜索引擎间隔预设时长对数据库的数据采用增量更新的方式建立第一字母索引包括:

获取已记录的当前预设时长内建立第一字母索引的时刻;

在数据库的数据中查找存储时刻在已记录的当前预设时长内建立第一字母索引的时刻之后的数据;

对查找到的数据建立第二字母索引;

将第二字母索引添加至第一字母索引中。

需要说明的是,数据库的数据被写入数据库时会记录其存储时刻。

其中,第一字母索引的索引值包括:数据的ID,和/或数据的名称,和/或数据的分类;第二字母索引的索引值包括:数据的ID,和/或数据的名称,和/或数据的分类。

可选地,该服务器还包括缓存处理器,用于存储数据库中的数据以及数据库中的数据的第一ID列表和第二ID列表。

可选地,缓存处理器,还用于存储第四ID列表或第五ID列表。

图6为本申请服务器的实施例的结构示意图,如图6所示,包括:输入输出(IO)总线、处理器60、存储器61、内存62和通信装置63。其中,

输入输出(IO)总线分别与自身所属的服务器的其它部件(处理器60、存储器61、内存62和通信装置63)连接,并且为其它部件提供传送线路。

处理器60通常控制自身所属的服务器的总体操作。例如,处理器60执行计算和确认等操作。其中,处理器60可以是中央处理器(CPU)。

通信装置63,通常包括一个或多个组件,其允许自身所属的服务器与无线通信系统或网络之间的无线电通信。

存储器61存储处理器60可读、处理器可执行的软件代码,其包含用于控制处理器60执行本文描述的功能的指令(即软件执行功能)。

其中,上述处理分页数据的装置中,实现分页模块40、接收模块41、判断模块42、获取模块43、发送模块44、记录模块45、处理模块46和存储模块47的功能的软件代码可存储在存储器61中,并由处理器60执行或编译后执行。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件(例如处理器)完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,例如通过集成电路来实现其相应功能,也可以采用软件功能模块的形式实现,例如通过处理器执行存储于存储器中的程序/指令来实现其相应功能。本发明不限制于任何特定形式的硬件和软件的结合。

以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

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