2013-05-21 48 views
15

我想用下面的代碼來過濾我twitter4j流:過濾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 

而且我不收回關鍵字我想跟隨,問題在哪裏?

回答

29

你並不需要:

twitterStream.sample(); 

如果你刪除它,你應該開始看到鳴叫符合篩選查詢。

當你調用filter偵聽器將收到過濾鳴叫,但因爲你然後調用sample你實際上是在替換過濾流監聽與樣品蒸汽,這是一個隨機選擇的鳴叫接收。

因此,換句話說,無論是打電話還是samplefilter,但不能同時使用。

+0

太好了!這是我的問題。我還有一個小問題。如果我選擇追蹤使用不多的關鍵字。我確定收到所有的推文嗎? – Apaachee

+1

@Apaachee我不能完全確定地說這個,但我會這麼期待。我瀏覽了文檔,沒有注意到任何重要的內容 - 除[版權內容]外(http://dev.twitter.com/blog/new-withheld-content-fields-api-responses)。 – Jonathan

+0

謝謝所有Jonathan。 – Apaachee