2012-09-06 59 views
0

我將爲線索標題中出現的每個詞彙創建一個論壇新主題頁面,以製作一種流行趨勢(如Google Trends)。我已經找到一種方法來刮,但我不知道我應該如何存儲在數據庫中的最佳性能。我想到了兩種不同的方式。計算數據庫中詞語出現的最佳解決方案

  1. 存儲每個字,在一排是新的,如果這個詞是不是新的,增加一個計數的「事件」字段。

  2. 無論如何,將每個單詞存儲在自己的行中。

有沒有其他解決方案來解決這個問題?

回答

1

如果你正在經歷刮擦的麻煩,你應該保持多層次的信息。

首先,跟蹤您遇到的每個論壇標題,以及發佈日期(以及您發現它的日期)以及其他信息。你可以把論壇上的標題,它會給你很好的能力尋找同一個詞(「數據庫」和「數據庫」)的類似版本的全文索引。

其次,將每個單詞分別存儲在表中以及發佈日期和時間(或者您發現它的日期和時間)以及鏈接回發佈表中。谷歌趨勢的價值並不在於它總是保持單詞的總數。這是你可以隨着時間的推移分解它。

然後,執行聚集查詢。如果您遇到性能問題,可以按日期對數據進行分區,因此大多數查詢只會讀取一部分數據。如果摘要被高度使用,那麼您可以考慮按批處理進行彙總,例如每晚一次。

最後,你打算如何處理隨時間推移出現的單詞的不同版本?通過拼寫錯誤?一個標題中同一個詞的多個外觀?

+0

是的,當然我需要的崗位也是日期,但所有其他信息是不必要的。錯誤拼寫和單詞的不同版本是一個問題,但我不認爲我可以解決這個問題。謝謝你的幫助! –

1

理念#1是最緊湊的,一般應該是最快的。使用單詞和日期上的唯一鍵檢查INSERT/ON DUPLICATE KEY。

理念#2,如果你存儲的其他數據不僅僅是字,像該論壇帖子的ID等

好運就變得很重要。

+0

謝謝,插入/重複上似乎是什麼我要找的究竟。 –