自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java中如何實(shí)現(xiàn)在上億條的用戶(hù)搜索日志中找到Top100的關(guān)鍵詞

開(kāi)發(fā) 前端
對(duì)于大型網(wǎng)站來(lái)說(shuō),每天用戶(hù)搜索的關(guān)鍵詞的日志有千萬(wàn)甚至上億的量,那么如何在這些日志中找到用戶(hù)搜索的top100的熱門(mén)關(guān)鍵詞呢?下面我們來(lái)聊聊這個(gè)問(wèn)題的解決方案。

    在做搜索引擎優(yōu)化、社交媒體趨勢(shì)分析、電商平臺(tái)的商品推薦等需求的時(shí)候都需要依據(jù)站內(nèi)用戶(hù)搜索的的熱門(mén)關(guān)鍵詞來(lái)分析。

    對(duì)于大型網(wǎng)站來(lái)說(shuō),每天用戶(hù)搜索的關(guān)鍵詞的日志有千萬(wàn)甚至上億的量,那么如何在這些日志中找到用戶(hù)搜索的top100的熱門(mén)關(guān)鍵詞呢?下面我們來(lái)聊聊這個(gè)問(wèn)題的解決方案。

    用戶(hù)搜索的的日志每天量非常的大,如果將這些搜索的日志直接加載到內(nèi)存中做分析是不可取的,因?yàn)閮?nèi)存是支撐不住的,我們可以采用“分而治之”的思想來(lái)處理這個(gè)問(wèn)題,如下所示的處理流程圖:

圖片圖片

(1)將用戶(hù)搜索的日志文件(一個(gè)大文件)切割成若干個(gè)小文件(如設(shè)置每個(gè)小文件大小為512KB)

圖片圖片

(2)創(chuàng)建一個(gè)長(zhǎng)度為n(如2048)的哈希表數(shù)組,用來(lái)統(tǒng)計(jì)每個(gè)小文件中關(guān)鍵詞出現(xiàn)的頻率。服務(wù)端開(kāi)啟多線程并行遍歷大文件切割出來(lái)的小文件,然后對(duì)每個(gè)用戶(hù)搜索的關(guān)鍵詞進(jìn)行哈希取模運(yùn)算,通過(guò)計(jì)算的結(jié)果將關(guān)鍵詞統(tǒng)計(jì)到哈希表數(shù)組中。

圖片圖片

(3)最后要遍歷哈希表數(shù)組,使用小頂堆來(lái)幫助我們實(shí)現(xiàn)獲取用戶(hù)搜索Top 100的關(guān)鍵詞。

圖片圖片

    首先構(gòu)建一個(gè)小頂堆,設(shè)置堆大小為100,然后在哈希表中遍歷到的關(guān)鍵詞出現(xiàn)的次數(shù)大于堆頂關(guān)鍵詞出現(xiàn)的次數(shù),那么就用新關(guān)鍵詞替換堆頂?shù)?span>關(guān)鍵詞并重新調(diào)整為小頂堆,如下所示的小頂堆圖:

圖片圖片

    當(dāng)遍歷完哈希表之后,小頂堆中的關(guān)鍵詞就是出現(xiàn)頻率最高的100個(gè)關(guān)鍵詞。

總結(jié):

(1)使用“分而治之”的思想,將大文件分割為小文件(可以使用哈希取模法切割文件)。

(2)使用多線程遍歷每個(gè)小文件,統(tǒng)計(jì)關(guān)鍵詞的出現(xiàn)頻率。

(3)使用小頂堆(小頂堆適用于解決統(tǒng)計(jì)頻率最高的TopN的問(wèn)題)統(tǒng)計(jì)前x位的關(guān)鍵詞。

責(zé)任編輯:武曉燕 來(lái)源: 龍蝦編程
相關(guān)推薦

2011-06-14 19:11:38

關(guān)鍵詞

2011-06-15 18:24:33

關(guān)鍵詞

2011-05-17 17:47:36

關(guān)鍵詞

2024-08-12 11:00:58

海量數(shù)據(jù)排序

2011-06-07 18:45:41

關(guān)鍵詞

2024-06-13 09:05:12

2011-06-21 17:48:24

SEO關(guān)鍵詞

2011-05-25 17:38:56

關(guān)鍵詞

2011-05-25 17:58:00

2011-06-20 14:32:59

關(guān)鍵詞

2013-08-26 15:43:40

AppStore關(guān)鍵詞開(kāi)發(fā)者應(yīng)用選取關(guān)鍵詞

2011-05-10 17:53:40

網(wǎng)站優(yōu)化關(guān)鍵詞

2011-06-14 10:01:03

長(zhǎng)尾關(guān)鍵詞

2011-06-19 12:20:47

長(zhǎng)尾關(guān)鍵詞

2023-06-19 09:16:41

CSSstep函數(shù)

2011-07-22 15:48:46

SEO

2011-06-22 19:01:54

關(guān)鍵詞

2024-07-12 08:00:00

2017-10-14 15:25:16

2011-06-10 14:13:24

關(guān)鍵詞
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)