我将为线程标题中出现的每个单词搜索论坛新主题页面,以制作一种流行趋势(如Google趋势)。我找到了一种方法来刮掉它,但我不知道应该如何将它存储在数据库中以获得最佳性能。我想到了两种不同的方式。
存储一行中的新单词,如果单词不是新单词,请在“出现次数”字段中添加一个计数。
将每个单词存储在自己的行中,无论如何。
这个问题还有其他解决办法吗?
答案 0 :(得分:1)
如果你存储的不是其他数据,比如论坛帖子的id等,那么#2想法变得很重要。
祝你好运。答案 1 :(得分:1)
如果你遇到了抓取的麻烦,你应该保持多层次的信息。
首先,跟踪您遇到的每个论坛标题,以及发布日期(以及发现日期)以及其他信息。您可以在论坛标题上添加全文索引,这将为您提供查找相同单词(“数据库”和“数据库”)的相似版本的良好功能。
其次,将每个单词分别存储在一个表格中,同时发布(或找到它)的日期和时间以及返回发布表格的链接。谷歌趋势的价值并不在于它总是保留了大量的词汇。这是你可以随着时间的推移分解它。
然后,在查询中进行聚合。如果遇到性能问题,可以按日期对数据进行分区,因此大多数查询只会读取数据的子集。如果汇总使用率很高,那么您可以批量考虑汇总,例如每晚一次。
最后,你将如何处理随时间出现的不同版本的单词?拼写错误?一个标题中同一个单词的多个外观?