过滤twitter4j流

17

我正在尝试使用以下代码过滤我的twitter4j流:

    TwitterStream twitterStream = getTwitterStreamInstance();

    // Listener
    twitterStream.addListener(listener);

    // Filter
    FilterQuery filtre = new FilterQuery();
    String[] keywordsArray = { "iphone", "samsung" };
    filtre.track(keywordsArray);
    twitterStream.filter(filtre);

    // Listening
    twitterStream.sample();

然而,例如结果为:

27/59 - "Taking a risk over something only means that you want it more than anything"
28/63 - The more attractive you are, the more awkward I am.
29/64 - the thing about pain is that it demands to be felt

我无法找到我想关注的关键词,问题出在哪里?

1个回答

33

你不需要:

twitterStream.sample();
如果您将其删除,您应该开始看到与您的过滤器查询匹配的推文。
当您调用filter时,您的侦听器将接收经过过滤的推文,但是因为您随后调用sample,您实际上正在用样本流替换侦听器接收到的经过过滤的流,这是一组随机选择的推文。
换句话说,请调用 sample filter ,但不要同时使用两者。

太好了!这正是我的问题。我还有另一个小问题。如果我选择跟踪一个不常用的关键词,我能确保收到所有相关推文吗? - Apaachee
1
@Apaachee 我不能完全确定,但我认为应该是这样的。我浏览了文档,没有注意到任何重要的东西 - 除了被隐瞒的内容之外。 - Jonathan
@Apaachee 没问题 - 我很高兴能帮到你。:-) 不知道你是否知道,如果你觉得某个答案回答了你的问题,你可以将其标记为“已接受”。(http://meta.stackexchange.com/a/5235/195234) - Jonathan
@Apaachee,你可能会错过未被索引的推文。Twitter不保证能够提供所有推文。 - vishalv2050
是的,但如果推文的频率足够低,你就会得到它们。因此,通过一个大的推文过滤器,您可以拥有所有的推文。 - Apaachee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接