現在、キーワード ディメンション テーブルを構築する方法を決定しようとしています。私たちはウェブサイトへのウェブサイト訪問を追跡しており、サイトの検索エンジンを介して検索するために使用される最も使用されたキーワードと、サイトへの訪問中に使用された検索用語を見つけられるようにしたいと考えています (価格 > $100、レビュー > 4 つ星など)。キーワードは完全に動的であり、無限の組み合わせで使用できるため、これらのキーワードを格納する方法を決定するのに苦労しています。ページが表示されるたびにレコードを含むページビュー ファクト テーブルがあります。プルしているソースには、正規表現で解析できる区切りリストのすべての検索用語が含まれています。キーワードの数はページビューによって大きく異なる可能性があるため、データベースに保存する方法がわかりませんページビューへ。これは、MSSQL テーブルに詰め込もうとする NOSQL ソリューションにより適していると考えていますが、わかりません。どんな助けでも大歓迎です!
質問する
116 次
1 に答える
1
データを分析する方法に応じて、いくつかの解決策があります。
しかし、おそらく分析しているデータの量については、事実の PK を使用して各キーワードを格納するテーブルを作成するだけです。
FACT_PAGEVIEW_ID bigint -- Surrogate key of fact table. Or natural key if you don't have a surrogate.
KEYWORD varchar(255) -- or whatever max len the keywords are
VALUE varchar(255)
このテーブルの粒度は、ID とキーワードの組み合わせごとに 1 行です。クエリ文字列で同じキーワードを複数回許可する場合は、値を追加する必要がある場合もあります。
これにより、ページビューごとにキーワードをグループ化するか、ページビュー ファクトから始めてフィルタリングし、これに結合してキーワードを特定できます。
もう 1 つのオプションは、キーワード ディメンションと「キーワード グループ」を使用した多対多のブリッジ テーブルですが、任意の数の組み合わせを使用できるため、おそらくこれがより迅速な方法であり、そこに至るまでの 90% を達成できる可能性があります。「最も頻繁に使用されるキーワードの組み合わせ」や「ユーザー ベースの上位 10% が最も使用するキーワード」など、ほとんどの質問には、この構造で答えることができます。
于 2013-03-19T12:20:29.607 に答える