2

我目前正在尝试确定如何构建关键字维度表。我们正在跟踪网站对我们网站的访问,并希望能够找到用于通过搜索引擎搜索网站的最常用关键字以及访问网站期间使用的任何搜索词(价格 > 100 美元,评论 > 4 星等)。由于关键字是完全动态的,并且可以用于无数种组合,因此我很难确定如何存储这些关键字。我有一个综合浏览量事实表,其中包含每次查看页面时的记录。我从中提取的来源包括分隔列表中的所有搜索词,我可以用正则表达式解析,我只是不知道如何将它存储在数据库中,因为关键字的数量可能与综合浏览量相差很大浏览量。我认为这可能更适合试图将其塞入 MSSQL 表的 NOSQL 解决方案,但我不知道。任何帮助是极大的赞赏!

4

1 回答 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 行。如果您在查询字符串中允许多次使用相同的关键字,您可能还必须添加值。

这使您可以按综合浏览量对关键字进行分组,或者从综合浏览量事实开始,对其进行过滤,然后加入其中以识别关键字。

另一种选择是关键字维度和带有“关键字组”的多对多桥接表,但由于可以使用任意数量的组合,这可能是更快的方法,并且可能会达到 90%。大多数问题,例如“最常使用哪些关键字组合”和“前 10% 的用户群最常使用哪些关键字”,都可以用这种结构来回答。

于 2013-03-19T12:20:29.607 回答