排行榜生成方法、日志生成方法和服务器的制作方法

文档序号:6380893
专利名称:排行榜生成方法、日志生成方法和服务器的制作方法
技术领域
本发明涉及网络技术领域,特别涉及排行榜生成方法、日志生成方法和服务器。
背景技术
随着移动互联网的不断发展,用户可以获取越来越丰富的信息和资讯,而为了有针对性、有序的获取信息和资讯,经常会有对信息进行排序的需求,即根据信息生成排行榜的需求。例如用户可以在论坛发帖子,该用户和其他用户又可以针对该帖发布评论,在浏览众多的帖子时,浏览者可能希望获知当前发布评论较活跃的用户,也可能希望获知当前热度较高的帖子,这是就需要生成对应的排行榜。
目前生成排行榜的方法一般包括以下过程预先设置针对特定需求的排序元素, 遍历历史数据,针对排序元素执行统计,并按照统计结果对信息进行排序,从而生成排行榜。仍以用户评论帖子为例说明生成排行榜的过程,例如特定需求是根据帖子的评论数量对帖子进行排序,此时的排序元素就是帖子的评论数量;服务器存储每个帖子的历史数据, 包括发帖用户ID、帖子ID、对应的评论内容、发表评论的用户ID等;假设排行榜生成间隔为一天,每到达排行榜生成时间时,遍历历史数据,统计每个帖子的评论数量;按照统计结果生成排行榜。
上述生成排行榜的方法至少存在以下问题每次生成排行榜时,都需要遍历存储的所有历史数据,操作繁琐,需要时间较长。发明内容
本发明实施例提供排行榜生成方法、日志生成方法和服务器,能够简化生成排行榜时执行的操作,缩短处理时间。
所述技术方案如下
本发明实施例提供了一种排行榜生成方法,所述方法包括
获取日志,所述日志中包括从预设事件中提取的排序元素对应的数据;
统计所述排序元素对应的每项数据在当前统计周期内出现的次数;
根据统计结果对所述排序元素对应的所有数据进行排序,生成基于所述排序元素的排行榜。
较优的,所述方法还包括
从发布的预设事件中提取与排序元素对应的数据;根据提取的数据生成日志并存
或,接收日志并存储,所述日志包括从预设事件中提取的排序元素对应的数据。
进一步,所述日志存储在日志文件中。
较优的,所述排序元素包括事件发起者、事件承受者、事件发生时间和事件类型中的至少一项。
进一步,所述排序元素包括两项以上;
所述统计在当前统计周期内所述排序元素对应的每项数据出现的次数为分别统计至少一项排序元素对应的每项数据在当前统计周期内出现的次数;
所述根据统计结果对所述排序元素对应的所有数据进行排序,生成基于所述排序元素的排行榜为分别对至少一个排序元素对应的所有数据进行排序,生成基于至少一个排序元素的排行榜。
较优的,所述方法还包括向终端返回生成的排行榜。
进一步,所述向终端返回生成的排行榜之前,所述方法还包括
接收终端发送的查询请求,所述查询请求携带查询条件;
从生成的排行榜中获取与所述查询条件相匹配的排行榜。
本发明实施例提供了一种日志生成的方法,所述方法包括
从预设事件中提取与排序元素对应的数据;
根据提取的数据生成日志。
较优的,所述方法还包括发送所述日志。
较优的,所述方法还包括将所述日志存储在日志文件中。
较优的,所述方法还包括
获取所述日志;
统计所述排序元素对应的每项数据在当前统计周期内出现的总次数;
根据统计结果对所述排序元素对应的所有数据进行排序,生成基于所述排序元素的排行榜。
进一步,所述排序元素包括事件发起者、事件承受者、事件发生时间和事件类型中的至少一项。
进一步,所述排序元素包括两项以上;
所述统计所述排序元素对应的每项数据在当前统计周期内出现的次数为分别统计至少一项排序元素对应的每项数据在当前统计周期内出现的次数;
所述根据统计结果对所述排序元素对应的所有数据进行排序,生成基于所述排序元素的排行榜为分别针对至少一个排序元素对应的所有数据进行排序,生成基于至少一个排序元素的排行榜。
较优的,所述方法还包括向终端返回生成的排行榜。
进一步,在向终端返回生成的排行榜之前,所述方法还包括
接收查询请求,所述查询请求携带查询条件;
从生成的排行榜中获取与所述查询条件匹配的排行榜。
本发明实施例提供了一种服务器,其特征在于,所述服务器包括
日志获取模块,用于获取日志,所述日志中包括从预设事件中提取的排序元素对应的数据;
统计模块,用于统计所述排序元素对应的每项数据在当前统计周期内出现的总次数;
排行榜生成模块,用于根据统计结果对所述排序元素对应的所有数据进行排序, 生成基于所述排序元素的排行榜。
较优的,所述服务器还包括日志存储模块,用于从预设事件中提取所述排序元素对应的数据;根据提取的数据生成日志并存储;或,接收日志并存储,所述日志包括从预设事件中提取的排序元素对应的数据。
进一步,所述日志存储在日志文件中。
较优的,所述排序元素包括事件发起者、事件承受者、事件发生时间和事件类型中的至少一项。
进一步,所述统计模块具体用于在所述排序元素包括两项以上时,分别统计至少一项排序元素对应的每项数据在当前统计周期内出现的总次数;
所述排行榜生成模块具体用于分别对至少一个排序元素对应的所有数据进行排序,生成基于至少一个排序元素的排行榜。
较优的,所述服务器还包括排行榜返回模块,用于向终端返回生成的排行榜。
进一步,所述服务器还包括
接收模块,用于接收终端发送的查询请求,所述查询请求携带查询条件;
排行榜获取模块,用于从生成的排行榜中获取与所述查询条件匹配的排行榜。
本发明实施例提供了一种服务器,所述服务器包括
提取模块,用于从预设事件中提取与排序元素对应的数据;
日志生成模块,用于根据提取的数据生成日志。
较优的,所述服务器还包括发送模块,用于发送所述日志。
较优的,所述服务器还包括日志存储模块,用于将所述日志存储在日志文件中。
较优的,所述服务器还包括
日志获取模块,用于获取日志;
统计模块,用于统计所述排序元素对应的每项数据在当前统计周期内出现的总次数;
排行榜生成模块,用于根据统计结果对所述排序元素对应的所有数据进行排序, 生成基于所述排序元素的排行榜。
进一步,所述排序元素包括事件发起者、事件承受者、事件发生时间和事件类型中的至少一项。
进一步,所述统计模块具体用于在所述排序元素包括两项以上时,分别统计至少一项排序元素对应的每项数据在当前统计周期内出现的总次数;
所述排行榜生成模块具体用于分别针对至少一个排序元素对应的所有数据进行排序,生成基于至少一个排序元素的排行榜。
较优的,所述服务器还包括排行榜返回模块,用于向终端返回生成的排行榜。
进一步,所述服务器还包括
接收模块,用于接收查询请求,所述查询请求携带查询条件;
排行榜获取模块,用于从生成的排行榜中获取与所述查询条件匹配的排行榜。
本发明实施例提供的排行榜生成方法、日志生成方法和服务器,将生成排行榜所需的排序元素对应的数据从预设事件中提取出来、并保存在日志中,需要生成排行榜时基于日志进行简单的次数统计即可,无需遍历所有历史数据,简化了生成排行榜的操作,缩短处理时间。


为了更清楚地说明本发明实施例中的技术方案,下面将对描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例的一些举例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图I是本发明实施例提供的一种排行榜生成方法的流程图2是本发明实施例提供的一种日志生成方法的流程图3是本发明实施例提供的一种排行榜生成方法的流程图4是本发明实施例提供的一种排行榜生成方法的流程图5是本发明实施例提供的一种服务器的结构示意图6是本发明实施例提供的一种服务器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图I是本发明实施例提供的一种排行榜生成方法的流程图。参见图1,该方法具体包括
101、获取日志,所述日志中包括从预设事件中提取的排序元素对应的数据;
102、统计所述排序元素对应的每项数据在当前统计周期内出现的次数;
103、根据统计结果对所述排序元素对应的所有数据进行排序,生成基于所述排序元素的排行榜。
作为一种较优的实施方式,该方法还包括
从预设事件中提取与排序元素对应的数据;根据提取的数据生成日志并存储; 或,接收日志并存储,所述日志包括从预设事件中提取的排序元素对应的数据。这里可以将所述日志存储在日志文件中。
作为一种较优的实施方式,所述排序元素包括事件发起者、事件承受者、事件发生时间和事件类型中的至少一项。
进一步,当所述排序元素包括两项以上时,所述统计所述排序元素对应的每项数据在当前统计周期内出现的次数为分别统计至少一项排序元素对应的每项数据在当前统计周期内出现的总次数;所述统计结果对所述排序元素对应的所有数据进行排序,生成基于所述排序元素的排行榜为分别对至少一个排序元素对应的所有数据进行排序,生成基于至少一个排序兀素的排行榜。
作为一种较佳的实施方式,所述方法还包括向终端返回生成的排行榜。
进一步,所述向终端返回生成的排行榜之前,所述方法还包括
接收终端发送的查询请求,所述查询请求携带查询条件;
从生成的排行榜中获取与查询条件匹配的排行榜。
本发明实施例提供的一种生成排行榜的方法,将生成排行榜所需的排序元素对应的数据从预设事件中提取出来、并保存在日志中,需要生成排行榜时基于日志进行简单的次数统计即可,无需遍历所有历史数据,简化了生成排行榜的操作,缩短处理时间。
图2是本发明实施例提供的一种日志生成方法的流程图。参见图2,该方法包括
201、从预设事件中提取与排序元素对应的数据;
202、根据提取的数据生成日志。
作为一种较优的实施方式,所述方法还包括发送所述日志。
作为一种较优的实施方式,该方法还包括将所述日志存储在日志文件中。
作为一种较优的实施方式,该方法还包括
获取所述日志;
统计所述排序元素对应的每项数据在当前统计周期内出现的总次数;
根据统计结果对所述排序元素对应的所有数据进行排序,生成基于所述排序元素的排行榜。
进一步,所述排序元素包括事件发起者、事件承受者、事件发生时间和事件类型中的至少一项。
进一步,在所述排序元素包括两项以上时;所述统计所述与排序元素对应的每项数据在当前统计周期内出现的总次数为分别统计至少一项排序元素对应的每项数据在当前统计周期内出现的总次数;所述根据统计结果对所述排序元素对应的所有数据进行排序,生成基于所述排序元素的排行榜为分别针对至少一个排序元素对应的所有数据进行排序,生成基于至少一个排序元素的排行榜。
作为一种较优的实施方式,所述方法还包括向终端返回生成的排行榜。
进一步,在向终端返回生成的排行榜之前,所述方法还包括
接收终端发送的查询请求,所述查询请求携带查询条件;
从生成的排行榜中获取与所述查询条件匹配的排行榜。
本发明实施例提供的一种生成日志的方法,将生成排行榜所需的排序元素对应的数据从预设事件中提取出来、并保存在日志中,需要生成排行榜时基于日志进行简单的次数统计即可,无需遍历所有历史数据,简化了生成排行榜的操作,缩短处理时间。
图3是本发明实施例提供的一种排行榜生成方法的流程图。在本实施例中,以生成日志和生成排行榜的设备为相互独立的实体为例进行说明,为了便于描述,将生成日志的设备称为第一服务器,生成排行榜的设备称为第二服务器,参见图3,该方法包括
301、第一服务器获取当前发生的预设事件。
对于网络应用来说,事件类型可以有多种,而第一服务器可以对多种事件类型的预设事件进行获取,以便后续根据获取到的预设事件生成日志。
例如,该预设事件的事件类型可以有以下在论坛中评论、发帖、点播、收藏等等。
本步骤中,每发生一个预设事件,第一服务器即对其进行获取。
作为可替换的执行方式,第一服务器还可以每隔预设时长获取该预设时长内发生的预设事件。
302、第一服务器从预设事件中提取与所述排序元素对应的数据;根据提取的数据生成日志。
本步骤中,所述排序元素包括事件发起者、事件承受者、事件发生事件和事件类型中的至少一项。所述排序元素包括了相当于事件发生的“时间”、“类型”和“对象”(包括事件发起者和事件承受者)的元素,是一种较为通用的生成模型,能够满足大多数排行榜需求,从而避免了需求改变时,重复开发设置的过程,非常灵活。
对于不同的应用场景,其排序元素中各个元素对应的数据可以不同。如事件为用户评论某一帖子,其事件发起者为用户,事件承受者为帖子,事件发生时间为评论发布时间,事件类型为评论。如事件为用户试听歌曲,其事件发起者为用户,事件承受者为歌曲,事件发生时间为试听时间,事件类型为试听。如事件为用户下载歌曲,其事件发起者为用户, 事件承受者为歌曲,事件发生时间为下载时间,事件类型为下载。如事件为用户收藏歌曲, 其事件发起者为用户,事件承受者为歌曲,事件发生时间为收藏时间,事件类型为收藏。
举例说明,对于预设事件为用户评论贴子来说,提取该预设事件中与排序元素对应的数据并生成日志,就是提取发布评论的用户ID、评论所针对的帖子ID、作为事件类型的“评论”和评论的发布时间,根据提取的数据生成日志。假设以用户135针对帖子224在 7月18日12点23分发布的新评论为例,生成的日志中包括如下数据用户135,帖子224, 评论,7月18日12点23分。
303、第一服务器向第二服务器发送生成的日志。
本步骤中,仅以第一服务器和第二服务器为相互独立的设备为例进行说明。需要说明的是,本步骤中的第一服务器可以是用于处理业务的服务器,也可以是用于处理业务的服务器上的功能模块,本步骤中的第二服务器可以是用于处理业务的服务器,也可以是用于处理业务的服务器上的功能模块。
304、第二服务器将接收到的日志存储在日志文件中。
本步骤中,第二服务器在存储日志时,可以按照日志的生成时间顺序存储在日志文件中,以便后续对日志文件进行处理的时候,能够根据生成时间获取需处理的日志。
以上步骤301-304可以在每个预设事件发生后就开始执行,也可以每隔预设时长执行,而且步骤301-304执行完成后并不一定马上执行后续的步骤305-309。
305、第二服务器统计所述排序元素对应的每项数据在当前统计周期内出现的次数。
本步骤中,所述排序元素可以包括两项以上,此时第二服务器针对至少一项排序元素,分别统计每项排序元素对应的每项数据在当前统计周期内出现的总次数。如果同时针对多项排序元素对应的数据进行统计,将可以在一次统计中获得多维的结果。
当前统计周期指由当前排行榜生成时间往前的预设时间间隔,该预设时间间隔可以为一天、一周或一个月等。
进一步地,可以一次对多个时间段内的日志进行统计,例如第二服务器可以对前一天、前一周和前一个月内的日志进行统计。
需要说明的是,对排序元素对应的每项数据出现的次数进行的统计可以是按照预设顺序串行统计,还可以是并行统计的。当按照预设顺序串行统计时,可以按照预先设置的元素统计顺序,如先对事件发起者进行统计,再对事件承受者进行统计等,例如统计前一天用户135出现的次数,再统计前一天帖子224出现的次数。当并行统计时,可以同时对各个排序元素对应的每项数据进行统计。
306、第二服务器根据统计结果对所述排序元素对应的所有数据进行排序,生成基于所述排序元素的排行榜。
本步骤中,针对至少一个排序元素,分别统计在当前统计周期内每项排序元素对应的每项数据出现的次数,并根据统计结果生成基于至少一个排序元素的排行榜。
其中,在排序和生成排行榜时,可以是针对所有排序元素的排序和生成排行榜,还可以是针对多个排序元素中某个或某几个排序元素的排序和生成排行榜,在本实施例中不作限定。
假设统计前一天各个用户发布评论的总次数,并根据统计结果排序,得到发布评论最多的用户或是发布评论前几名的用户,再统计前一天各个帖子的评论数量,根据统计结果排序,得到被评论最多的帖子或是被评论前几名的帖子。
进一步地,还可以统计前一周各个用户发布评论的次数,并根据统计结果排序,得到发布评论最多的用户或是发布评论前几名的用户,再统计前一周各个帖子的评论数量, 根据统计结果排序,得到被评论最多的帖子或是被评论前几名的帖子。由此可以一次产生不同时间跨度(一天内和一周内)、两种维度(发布评论最多的用户和评论数最多的帖子)上的排行榜。
以按照“事件发起者”和“事件承受者”的次数进行统计为例进行说明,分别生成基于“事件发起者”和“事件承受者”的排行榜。
基于“事件发起者”的排行榜榜单如下
:件类型事件发生时间次数用户135 评论 7月18日2次用户364 评论 7月18日用户175 评论 7月18日基于“事件承受者”的排行榜榜单如下事件承受者事件类型事件发生时间次数帖子224 评论7月18日 3次帖子64 评论7月18日 I次以上排行榜榜单说明,在7月18日,在发布评论的事件上,最活跃的用户依次是 “用户135”,“用户364”和“用户175”,被评论次数最多的帖子依次是“帖子224”和“帖子 64”,也就是“本日最活跃用户”和“本日最火帖子”的排行榜。
进一步,在排行榜生成之后,用户通过移动终端可以查询排行榜,此时执行如下步骤
307、第二服务器接收查询请求,所述查询请求携带查询条件。
本步骤中,该查询条件可以为排行榜所基于的排序元素(如事件发起者或事件承受者),还可以是排行榜生成时间或排行榜时间跨度。
如可以查询基于事件发起者或事件承受者的排行榜。
该查询请求可以是通过http协议发送和接收。
308、第二服务器从生成的排行榜中获取与所述查询条件匹配的排行榜。
本步骤中,当查询条件为排行榜基于的排序元素时,获取基于该排序元素的排行榜,如果不存在基于该排序元素的排行榜,则提示查询失败。当查询条件为排行榜生成时间时,获取该生成时间生成的排行榜,如果不存在该生成时间生成的排行榜,提示查询失败。当查询条件为排行时间跨度时,获取该时间跨度内生成的排行榜,如果该时间跨度内没有生成排行榜,提示查询失败。
309、第二服务器向终端返回获取的排行榜。
在实际应用中,第二服务器在生成各类排行榜之后,也可以主动向终端推送生成的所有排行榜,而不必等用户发送具体的请求后在发送。
需要说明的是,在本实施例中,仅以第二服务器接收到查询请求为例进行说明,而在实际应用中,第一服务器也可以接收查询请求,并将查询请求发送给第二服务器,使得第二服务器提供相应的排行榜,此时,该步骤307-309还可以用以下步骤代替第一服务器接收查询请求,将查询请求发送给第二服务器,第二服务器从已生成的排行榜中获取所述待查询元素对应的排行榜,并将排行榜发送给第一服务器,第一服务器向查询请求的请求端返回该排行榜。
本发明实施例提供的生成排行榜的方法,将生成排行榜所需的排序元素对应的数据从预设事件中提取出来、并保存在日志中,需要生成排行榜时基于日志进行简单的次数统计即可,无需遍历所有历史数据,简化了生成排行榜的操作,缩短处理时间。
图4是本发明实施例提供的一种排行榜生成方法的流程图。在本实施例中,以生成日志和生成排行榜都在一个服务器上执行为例,参见图4,该方法包括
401、服务器获取当前发生的预设事件。
对于网络应用来说,事件类型可以有多种,而服务器可以对多种事件类型的预设事件进行获取,以便后续根据获取到的预设事件生成日志。
例如,该预设事件的事件类型可以有以下在论坛中评论、发帖、点播、收藏等等。
本步骤中,每发生一个预设事件,服务器即对其进行获取。
作为可替换的执行方式,服务器还可以每隔预设时长获取该预设时长内发生的预设事件。
需要说明的是,所述服务器可以是独立的服务器,也可以是服务器上的功能模块。
402、服务器从发布的预设事件中提取与所述排序元素对应的数据;根据提取的数据生成日志。
本步骤中,所述排序元素包括事件发起者、事件承受者、事件发生事件和事件类型中的至少一项。所述排序元素包括了相当于事件发生的“时间”、“类型”和“对象”(包括事件发起者和事件承受者)的元素,是一种较为通用的生成模型,能够满足大多数排行榜需求,从而避免了需求改变时,重复开发设置的过程,非常灵活。
对于不同的应用场景,其排序元素中各个元素对应的数据可以不同。如事件为用户评论某一帖子,其事件发起者为用户,事件承受者为帖子,事件发生时间为评论发布时间,事件类型为评论。如事件为用户试听歌曲,其事件发起者为用户,事件承受者为歌曲,事件发生时间为试听时间,事件类型为试听。如事件为用户下载歌曲,其事件发起者为用户, 事件承受者为歌曲,事件发生时间为下载时间,事件类型为下载。如事件为用户收藏歌曲, 其事件发起者为用户,事件承受者为歌曲,事件发生时间为收藏时间,事件类型为收藏。
举例说明,对于预设事件为用户评论某一用户的贴子来说,提取该预设事件中与排序元素对应的数据并生成日志,就是提取发布评论的用户ID、评论所针对的帖子ID、作为事件类型的“评论”和评论的发布时间,根据提取的数据生成日志文件。假设以用户13512针对帖子224在7月18日12点23分发布的新评论为例,生成的日志中包括如下数据用户135,帖子224,评论,7月18日12点23分。
403、服务器将该日志存储在日志文件中。
本步骤中,该服务器在存储该日志时,可以按照该日志的生成时间顺序存储在日志文件中,以便后续对日志文件进行处理的时候,能够根据生成时间获取需处理的日志。
404、服务器统计所述与排序元素对应的每项数据在当前统计周期内出现的次数。
本步骤中,所述排序元素可以包括两项以上,此时服务器针对至少一项排序元素, 分别统计每项排序元素对应的每项数据在当前统计周期内出现的次数。如果同时针对多项排序元素对应的数据进行统计,将可以在一次统计中获得多维的结果。
当前统计周期是指由当前排行榜生成时间往前的预设时间间隔,该预设间隔可以为一天、一周或一个月等。
进一步地,可以一次对多个时间段内的日志进行统计,例如服务器可以一次对前一天、前一周和前一个月内的日志进行统计。
需要说明的是,对排序元素对应的每项数据出现的次数进行的统计可以是按照预设顺序串行统计,还可以是并行统计的。当按照预设顺序串行统计时,可以按照预先设置的元素统计顺序,如先对事件发起者进行统计,再对事件承受者进行统计等,例如统计前一天用户135出现的次数,再统计前一天帖子224出现的次数。当并行统计时,可以同时对各个排序元素对应的每项数据进行统计。
405、服务器根据统计结果对所述排序元素对应的所有数据进行排序,生成基于所述排序元素的排行榜。
本步骤中,针对至少一个排序元素,分别统计每项排序元素对应的每项数据在当前统计周期内出现的次数,生成基于至少一个排序元素的排行榜。
其中,在排序和生成排行榜时,可以是针对所有排序元素的排序和生成排行榜,还可以是针对多个排序元素中某个或某几个排序元素的排序和生成排行榜,在本实施例中不作限定。
假设统计前一天各个用户发布评论的总次数,并根据统计结果排序,得到发布评论最多的用户或是发布评论前几名的用户,再统计前一天各个帖子的评论数量,根据统计结果排序,得到被评论最多的帖子或是被评论前几名的帖子。
进一步地,还可以统计前一周各个用户发布评论的次数,并根据统计结果排序,得到发布评论最多的用户或是发布评论前几名的用户,再统计前一周各个帖子的评论数量, 根据统计结果排序,得到被评论最多的帖子或是被评论前几名的帖子。由此可以一次产生不同时间跨度(一天内和一周内)、两种维度(发布评论最多的用户和评论数最多的帖子)上的排行榜。
以按照“事件发起者”和“事件承受者”的次数进行统计为例进行说明,分别生成基于“事件发起者”和“事件承受者”的排行榜。
基于“事件发起者”的排行榜榜单如下
事件发起者事件类型事件发生时间次数用户135 评论 7月18日2次用户364 评论 7月18日I次用尸175 评论 7月18日I次
基于“事件承受者”的排行榜榜单如下
事件承受者事件类型事件发生时间次数
帖子224 评论7月18日 3次
帖子64 评论7月18日 I次
以上排行榜榜单说明,在7月18日,在发布评论的事件上,最活跃的用户依次是 “用户135”,“用户364”和“用户175”,被评论次数最多的帖子依次是“帖子224”和“帖子 64”,也就是“本日最活跃用户”和“本日最火帖子”的排行榜。
进一步,在排行榜生成之后,用户通过移动终端可以查询排行榜,此时执行如下步骤
406、服务器接收查询请求,所述查询请求携带查询条件。
本步骤中,查询条件可以为排行榜所基于的排序元素(如事件发起者或事件承受者),还可以是排行榜生成时间或排行榜时间跨度。
如可以查询基于事件发起者或事件承受者的排行榜。
该查询请求可以是通过http协议发送和接收。407、服务器从生成的排行榜中获取与所述查询条件匹配的排行榜。
本步骤中,当查询条件为排行榜基于的排序元素时,获取基于待查询元素的排行榜,如果不存在基于该排序元素的排行榜,提示查询失败。当查询条件为排行榜生成时间时,获取该生成时间生成的排行榜,如果不存在该生成时间生成的排行榜,提示查询失败。 当查询条件为排行时间跨度时,获取该时间跨度内生成的排行榜,如果该时间跨度内没有生成排行榜,提示查询失败。
408、服务器向终端返回获取的排行榜。
在实际应用中,服务器在生成各类排行榜之后,也可以主动向终端推送生成的所有排行榜,而不必等用户发送具体的请求后在发送。
本发明实施例提供的一种生成排行榜的方法,将生成排行榜所需的排序元素对应的数据从预设事件中提取出来、并保存在日志中,需要生成排行榜时基于日志进行简单的次数统计即可,无需遍历所有历史数据,简化了生成排行榜的操作,缩短处理时间。
图5是本发明实施例提供的一种服务器的结构示意图。参见图5,所述服务器包括
日志获取模块51,用于获取日志,所述日志中包括从预设事件中提取的排序元素对应的数据;
统计模块52,用于统计所述排序元素对应的每项数据在当前统计周期内出现的总次数;
排行榜生成模块53,用于根据统计结果对所述排序元素对应的所有数据进行排序,生成基于所述排序元素的排行榜。
作为一种较优的实施方式,该服务器还包括日志存储模块54,用于从预设事件中提取所述排序元素对应的数据;根据提取的数据生成日志并存储;或,接收日志并存储, 所述日志包括从预设事件中提取的排序元素对应的数据。这里的日志可以存储在日志文件中。
作为一种较优的实施方式,所述排序元素包括事件发起者、事件承受者、事件发生时间和事件类型中的至少一项。
进一步,统计模块52具体用于在所述排序元素包括两项以上时,分别统计至少一项排序元素对应的每项数据出现的总次数。
相应的,排行榜生成模块53具体用于分别对至少一个排序元素对应的所有数据进行排序,生成基于至少一个排序元素对应的排行榜。
作为一种较优的实施方式,所述服务器还包括排行榜返回模块57,用于向终端返回生成的排行榜。
进一步,所述服务器还包括
接收模块55,用于接收终端发送的查询请求,所述查询请求携带查询条件;
排行榜获取模块56,用于从生成的排行榜中获取与所述查询条件匹配的排行榜。
图6是本发明实施例提供的一种服务器的结构示意图。参见图6,所述服务器包括
提取模块61,用于从预设事件中提取与排序元素对应的数据;
日志生成模块62,用于根据提取的数据生成日志。
作为一种较优的实施例,所述服务器还包括发送模块63,用于发送所述日志。
作为一种较优的实施例,所述服务器还包括日志存储模块64,将所述日志存储在日志文件中。
作为一种较优的实施例,所述服务器还包括
日志获取模块65,用于获取日志;
统计模块66,用于统计所述排序元素对应的每项数据在当前统计周期内出现的总次数;
排行榜生成模块67,用于根据统计结果对所述排序元素对应的所有数据进行排序,生成基于所述排序元素的排行榜。
进一步,所述排序元素包括事件发起者、事件承受者、事件发生时间和事件类型中的至少一项。
进一步,统计模块66具体用于在所述排序元素包括两项以上时,分别统计至少一项排序元素对应的每项数据在当前统计周期内出现的总次数。
相应的,排行榜生成模块66具体用于分别针对至少一个排序元素对应的所有数据进行排序,生成基于至少一个排序元素的排行榜。
作为一种较佳的实施方式,所述服务器还包括排行榜返回模块70,用于向终端返回生成的排行榜。
进一步,所述服务器还包括
接收模块68,用于接收查询请求,所述查询请求携带查询条件;
排行榜获取模块69,用于从生成的排行榜中获取所述查询条件匹配的排行榜。
需要说明的是上述实施例提供的服务器,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的服务器与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明实施例的较佳实施例,并不用以限制本发明实施例,凡在本发明实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
权利要求
1.一种排行榜生成方法,其特征在于,所述方法包括 获取日志,所述日志中包括从预设事件中提取的排序元素对应的数据; 统计所述排序元素对应的每项数据在当前统计周期内出现的次数; 根据统计结果对所述排序元素对应的所有数据进行排序,生成基于所述排序元素的排行榜。
2.根据权利要求I所述的方法,其特征在于,所述方法还包括 从预设事件中提取排序元素对应的数据;根据提取的数据生成日志并存储; 或,接收日志并存储,所述日志包括从预设事件中提取的排序元素对应的数据。
3.根据权利要求I所述的方法,其特征在于,所述排序元素包括事件发起者、事件承受者、事件发生时间和事件类型中的至少一项。
4.根据权利要求I或3所述的方法,其特征在于,所述排序元素包括两项以上; 所述统计所述排序元素对应的每项数据在当前统计周期内出现的次数为分别统计至少一项排序元素对应的每项数据在当前统计周期内出现的次数; 所述根据统计结果对所述排序元素对应的所有数据进行排序,生成基于所述排序元素的排行榜为分别对至少一个排序元素对应的所有数据进行排序,生成基于至少一个排序元素的排行榜。
5.根据权利要求I所述的方法,其特征在于,所述方法还包括向终端返回生成的排行榜。
6.根据权利要求5所述的方法,其特征在于,所述向终端返回生成的排行榜之前,所述方法还包括 接收终端发送的查询请求,所述查询请求携带查询条件; 从生成的排行榜中获取与所述查询条件匹配的排行榜。
7.一种日志生成方法,其特征在于,所述方法包括 从预设事件中提取与排序元素对应的数据; 根据提取的数据生成日志。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括发送所述日志。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括 获取所述日志; 统计所述排序元素对应的每项数据在当前统计周期内出现的次数; 根据统计结果对所述排序元素对应的所有数据进行排序,生成基于所述排序元素的排行榜。
10.根据权利要求7或9所述的方法,其特征在于,所述排序元素包括事件发起者、事件承受者、事件发生时间和事件类型中的至少一项。
11.根据权利要求9所述的方法,其特征在于,所述排序元素包括两项以上; 所述统计所述排序元素对应的每项数据在当前统计周期内出现的次数为分别统计至少一项排序元素对应的每项数据在当前统计周期内出现的总次数; 所述根据统计结果对所述排序元素对应的所有数据进行排序,生成基于所述排序元素的排行榜为分别针对至少一个排序元素对应的所有数据进行排序,生成基于至少一个排序元素的排行榜。
12.根据权利要求9所述的方法,其特征在于,所述方法还包括向终端返回生成的排行榜。
13.根据权利要求12所述的方法,其特征在于,在向终端返回生成的排行榜之前,所述方法还包括 接收终端发送的查询请求,所述查询请求携带查询条件; 从生成的排行榜中获取与所述查询条件匹配的排行榜。
14.一种服务器,其特征在于,所述服务器包括 日志获取模块,用于获取日志,所述日志中包括从预设事件中提取的排序元素对应的数据; 统计模块,用于统计所述排序元素对应的每项数据在当前统计周期内出现的次数; 排行榜生成模块,用于根据统计结果对所述排序元素对应的所有数据进行排序,生成基于述排序元素的排行榜。
15.根据权利要求14所述的服务器,其特征在于,所述服务器还包括日志存储模块,用于从预设事件中提取排序元素对应的数据;根据提取的数据生成日志并存储;或,接收日志并存储,所述日志包括从预设事件中提取的排序元素对应的数据。
16.根据权利要求14所述的服务器,其特征在于,所述排序元素包括事件发起者、事件承受者、事件发生时间和事件类型中的至少一项。
17.根据权利要求14或16所述的服务器,其特征在于,所述统计模块具体用于在所述排序元素包括两项以上时,分别统计至少一项排序元素对应的每项数据在当前统计周期内出现的次数; 所述排行榜生成模块具体用于分别对至少一个排序元素对应的所有数据进行排序,生成基于至少一个排序元素的排行榜。
18.根据权利要求14所述的服务器,其特征在于,所述服务器还包括排行榜返回模块,用于向终端返回生成的排行榜。
19.根据权利要求18所述的服务器,其特征在于,所述服务器还包括 接收模块,用于接收终端发送的查询请求,所述查询请求携带查询条件; 排行榜获取模块,用于从生成的排行榜中获取与所述查询条件匹配的排行榜。
20.一种服务器,其特征在于,所述服务器包括 提取模块,用于从预设事件中提取与排序元素对应的数据; 日志生成模块,用于根据提取的数据生成日志。
21.根据权利要求20所述的服务器,其特征在于,所述服务器还包括发送模块,用于发送所述日志。
22.根据权利要求20所述的服务器,其特征在于,所述服务器还包括 日志获取模块,用于获取所述日志; 统计模块,用于统计所述排序元素对应的每项数据在当前统计周期内出现的总次数; 排行榜生成模块,用于根据统计结果对所述排序元素对应的所有数据进行排序,生成基于所述排序元素的排行榜。
23.根据权利要求20或22所述的服务器,其特征在于,所述排序元素包括事件发起者、事件承受者、事件发生时间和事件类型中的至少一项。
24.根据权利要求22所述的服务器,其特征在于,所述统计模块具体用于在所述排序元素包括两项以上时,分别统计至少一项排序元素对应的每项数据在当前统计周期内出现的总次数; 所述排行榜生成模块具体用于分别针对至少一个排序元素对应的所有数据进行排序,生成基于至少一个排序元素的排行榜。
25.根据权利要求22所述的服务器,其特征在于,所述服务器还包括排行榜返回模块,用于向终端返回生成的排行榜。
26.根据权利要求25所述的服务器,其特征在于,所述服务器还包括 接收模块,用于接收查询请求,所述查询请求携带查询条件; 排行榜获取模块,用于从生成的排行榜中获取与所述查询条件匹配的排行榜。
全文摘要
本发明公开了排行榜生成方法、日志生成方法和服务器,属于网络技术领域。所述方法包括获取日志,所述日志中包括从预设事件中提取的排序元素对应的数据;统计所述排序元素对应的每项数据在当前统计周期内出现的次数;根据统计结果对所述排序元素对应的所有数据进行排序,生成所述排序元素对应的排行榜。本发明避免了每次生成排行榜时遍历所有历史数据,简化了生成排行榜的操作,缩短处理时间。
文档编号G06F17/30GK102982112SQ201210444628
公开日2013年3月20日 申请日期2012年11月8日 优先权日2012年11月8日
发明者张啸, 付力扬, 谢龙 申请人:北京小米科技有限责任公司
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1