專利名稱:排行榜生成方法、日志生成方法和服務器的制作方法
技術領域:
本發明涉及網絡技術領域,特別涉及排行榜生成方法、日志生成方法和服務器。
背景技術:
隨著移動互聯網的不斷發展,用戶可以獲取越來越豐富的信息和資訊,而為了有針對性、有序的獲取信息和資訊,經常會有對信息進行排序的需求,即根據信息生成排行榜的需求。例如用戶可以在論壇發帖子,該用戶和其他用戶又可以針對該帖發布評論,在瀏覽眾多的帖子時,瀏覽者可能希望獲知當前發布評論較活躍的用戶,也可能希望獲知當前熱度較高的帖子,這是就需要生成對應的排行榜。
目前生成排行榜的方法一般包括以下過程預先設置針對特定需求的排序元素, 遍歷歷史數據,針對排序元素執行統計,并按照統計結果對信息進行排序,從而生成排行榜。仍以用戶評論帖子為例說明生成排行榜的過程,例如特定需求是根據帖子的評論數量對帖子進行排序,此時的排序元素就是帖子的評論數量;服務器存儲每個帖子的歷史數據, 包括發帖用戶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日
發明者張嘯, 付力揚, 謝龍 申請人:北京小米科技有限責任公司