我如何有效地合并时间表(重复数据删除作为奖励)

时间:2015-11-24 10:06:28

标签: algorithm merge timeline

假设我有一个经典的帖子时间表,比如twitter,所以帖子可以是:原帖,转发,可以发帖,可以是热门帖子,热门帖子等。

当我为用户提取项目页面时,如何并行化数据库查询?

假设我想要获取接下来的十个项目(分页),其中:

  • 两个项目最受欢迎(popularity值)
  • 两个是最近的(按createdTime值)
  • 两个是最喜欢或最重新发布的项目
  • 四个来自我跟随的朋友/人?

另一个子问题是重复项目,但让我们关注第一个。

我现在所做的是并行运行四个查询。 然后结果,我清理了重复,看看我有多少 ssing(按类别)。 然后我应该“重新运行” - 获取更多,让我们说一个“重新开始 “而且一个转发是重复的,我需要获取最新数据并重新开始 再来一次,只是数量较少。 最后,假设我只有3条来自朋友的帖子,我也需要填写 与其他类别一起使用,以便查询更多。

我的解决方案有效,但您可以看到它可以很快爆炸。

我可以在主时间轴集合上设置哪些标志(在这里使用MongoDB),来自redis或其他地方的元数据可以帮助我 ERE?

我主要是在减少并行查询次数。

我在考虑只获取每个类别中的10个,然后只有4个 并行查询,但它似乎是一个反模式来获取不需要的数据。但我目前的解决方案也是如此。

有更好的方法吗?

我还能如何提高性能,以及可维护性?

0 个答案:

没有答案