2013-05-21 5 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を呼び出すと、リスナーが受け取っているフィルタリングされたストリームを効果的に置き換えます。

つまり、sampleまたはfilterのいずれかを呼び出しますが、両方を呼び出すことはできません。

+0

素晴らしい!それは私の問題でした。私ももう少し小さな質問があります。あまり使われていないキーワードを追跡することを選択した場合。私はすべてのつぶやきについて確かに収穫していますか? – Apaachee

+1

@Apaachee私は完全に確実にこれを言うことができませんが、私は期待しています。私はドキュメントをはぎとり、重要なことに気がつかなかった - [保留中のコンテンツ](http://dev.twitter.com/blog/new-withheld-content-fields-api-responses)を除いて。 – Jonathan

+0

すべてのJonathanに感謝します。 – Apaachee