我有一项服务可以通过Streaming API(带有filter
参数的track
端点)成功监控Twitters的状态。一切运作良好,我收到很多预定义关键字的推文。唯一的问题是我没有使用这些关键字获得自己的推文。这是正常的吗?如果必须在Twitter上收集包括我的消息在内的所有相关数据,我是否应该为该应用程序设置一个单独的特殊帐户?
提前致谢。
更新
我找到了部分答案here,我在下面发布了Twitter员工解释的一部分,供参考:
特别是[node:10389],你是从firehose过滤的, 最大结果量为总推文数量的1% 时刻...换句话说,如果您要跟踪的关键字占用 不到1%的消防水,你会得到所有的匹配 推文,否则你将被限制。为了给你一个想法,有 每天在Twitter上发布超过5亿条推文,因此1% 仍然代表一个非常大的数字。
因此,我们通过Streaming API收到的推文只是匹配给定谓词的所有推文的任意子集。顺便说一句,我怀疑我的关键字产生整个Twitter的1%数据流,但我无法检查出来。
好的,这里没什么可做的,但接下来的问题是 - 我怎样才能确定我每时每刻得到的火炬的哪一部分?如果我知道这一点,我可以更改谓词以缩小查询范围,并尝试获得超过默认值的1%,并提高相关性和数据流量。
答案 0 :(得分:0)
Twitter的Streaming API 推送数据,因为推文几乎是实时发生的,与Twitter的Search API不同,你在那里从已发生的推文中查询数据。使用Twitter的Streaming API,用户注册一组标准(关键字,用户名,位置,命名位置等),并且当推文符合标准时,它们将直接推送给用户。将此视为最终用户与Twitter之间的协议 - 您同意Twitter的意见,即每当他们收到与“曲棍球”相关的关键字匹配的推文时,他们会在发生时直接向您发送推文。
Streaming API的主要缺点是Twitter的 Steaming API仅提供正在发生的推文样本。用户通过Twitter的Streaming API收到的推文总数的实际百分比根据用户请求的标准和当前流量而有很大差异。研究估计,使用Twitter的Streaming API用户可以获得从 1%的推文到超过40%的近实时推文的任何地方。您没有从Twitter Streaming API收到所有推文的原因仅仅是因为Twitter没有当前的基础设施来支持它,而且他们不想;因此,Twitter Firehose。
我怎样才能确定我每时每刻都能获得的火炬的哪一部分?
你根本无法
如果我知道这一点,我可以更改谓词以缩小查询范围,并尝试获得超过默认值的1%,并提高相关性和数据流量。
另一方面,搜索更多!搜索与您的查询相关的所有关键字。收到推文后,你可以简单地对它们进行分类或丢弃!