实现 twitter 和 facebook 之类的主题标签

Posted

技术标签:

【中文标题】实现 twitter 和 facebook 之类的主题标签【英文标题】:Implementing twitter and facebook like hashtags 【发布时间】:2014-06-14 00:23:30 【问题描述】:

这可能看起来很傻......而且是一个没有研究的问题,但相信我不是。我对此进行了一些研究。其中之一是以下链接: http://www.quora.com/Twitter-1/How-does-Twitter-implement-hashtags

另外我不是在这里寻找一个完整的解决方案。我会努力工作,但我只需要一些指导,只是想知道我应该采用哪种方式?

我想为我的应用程序实现 twitter 甚至 facebook 之类的主题标签。这样用户可以添加带有主题标签的消息,其他人可以搜索它们。比如什么是趋势和什么是相关的。

我们在我们的存储技术堆栈中使用 mysql、mongo 和 elasticsearch。任何想法我怎么能开始努力实现这一点?我需要另一个存储空间吗?一种方法是我可以将我的 hastags 存储在 db 中,然后在 Elasticsearch 中对它们进行文本搜索。

在这个领域有更多经验的人可以在这里提出什么建议?

【问题讨论】:

我想你会很难在这个网站上找到任何有社交媒体分析经验的人。我的猜测是,您如何存储“标签”而不是用于搜索和组织(即“趋势”)的算法并不重要。这是这个网站的一个类似问题:***.com/questions/787496/… 您实际上在问什么有点不清楚。您遇到问题的具体用例是什么?是什么类型的问题? 这个用例实际上类似于 facebook 或 twitter 中的主题标签,就像不同的用户可以发布具有相同主题标签的消息,并且可以根据趋势等计算主题标签。没有其他特殊用例跨度> 【参考方案1】:

从 MongoDB 开始,将解析每条消息以查找用户使用的主题标签,并将它们放入文档的子数组中。状态更新示例:

彼得

2014 年 4 月 29 日 12:28:34

朋友们好,我参观了#washington 的#tradeshow,喝了美味的#coffee

此消息在 MongoDB 中将如下所示:


    author: "Peter",
    date: ISODate("2014-04-29 12:28:34"),
    text: "Hello friends, I visited the #tradeshow in #washington and drank a delicious #coffee",
    hashtags: [
        "tradeshow",
        "washington",
        "coffee"
    ]

当您随后在 db.collection.hashtags 上创建索引时,您可以快速搜索包含这些主题标签之一的所有消息。您可能希望按日期对结果进行排序和限制,以便用户首先看到最新的结果。当你把它变成一个包含日期的复合索引时,你也可以加快速度。

如何实施“热门”主题是一个相当复杂的问题。这也是非常主观的,这取决于您认为“趋势”是什么。 Twitter 或 Facebook 用来确定哪些主题是热门话题的确切算法是不公开的。根据各种社交媒体分析师的说法,他们也经常更改它们,因此我们可以假设它们现在相当复杂。

这意味着我们无法帮助您自己提出算法。但是,如果您已经想到了一种算法来计算主题标签的“流行度”,我们可以帮助您找到一个好的实现方式。

【讨论】:

以上是关于实现 twitter 和 facebook 之类的主题标签的主要内容,如果未能解决你的问题,请参考以下文章

Facebook Android API 和 Twitter Webview 登录集成

Facebook 或 Twitter 如何实现他们的订阅系统

Android Facebook和Twitter登录和分享完整版

将 facebook、twitter 和 Google+ 共享按钮放在 html 中的最佳方式? [关闭]

Facebook 预定帖子和 Twitter

UIActivityViewController 和 facebook/twitter