0

スレッドのタイトルに表示される単語ごとにフォーラムの新しいスレッド ページをスクレイピングして、一種の人気トレンド (Google トレンドなど) を作成します。スクレイピングする方法を見つけましたが、最適なパフォーマンスのためにデータベースに保存する方法がわかりません。私は2つの異なる方法を考えました。

  1. 新しい単語を連続して保存し、その単語が新しい単語でない場合は、「出現回数」フィールドにカウントを 1 つ追加します。

  2. 何があっても、各単語を独自の行に保存します。

この問題に対する他の解決策はありますか?

4

2 に答える 2

1

スクレイピングの問題を抱えている場合は、複数のレベルの情報を保持する必要があります。

まず、見つけた各フォーラムのタイトルと、投稿日 (およびそれを見つけた日) およびその他の情報を追跡します。フォーラムのタイトルに全文索引を付けることができます。これにより、同じ単語の類似バージョン (「データベース」と「データベース」) を見つけるための優れた機能が提供されます。

次に、各単語を個別にテーブルに保存し、投稿 (または投稿を見つけた) の日付と時刻、および投稿テーブルへのリンクを付けます。Google トレンドの価値は、これまでの総単語数を保持することではありません。時間をかけて分解できるということです。

次に、クエリで集計を行います。パフォーマンスに問題がある場合は、データを日付で分割して、ほとんどのクエリがデータのサブセットのみを読み取るようにすることができます。集計の使用頻度が高い場合は、1 晩に 1 回など、バッチ ベースでの集計を検討できます。

最後に、時間の経過とともに出現する単語のさまざまなバージョンにどのように対処しますか? スペルミスで?1 つのタイトルに同じ単語が複数出現するのは?

于 2012-09-06T17:51:18.063 に答える
1

アイデア #1 は最もコンパクトで、通常は最速です。単語と日付に一意のキーを使用して、INSERT/ON DUPLICATE KEY を確認してください。

フォーラム スレッドの ID など、単語以外のデータを保存する場合は、アイデア #2 が重要になります。

幸運を。

于 2012-09-06T17:36:57.790 に答える