2013-05-21 12 views
15

Ich versuche, meinen Twitter4J Strom mit dem folgenden Code zu filtern:Filter Twitter4J Strom

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(); 

Aber das Ergebnis ist, zum Beispiel:

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 

Und ich genese nicht die Schlüsselwörter Ich möchte folgen, wo ist das Problem?

Antwort

29

Sie brauchen nicht:

twitterStream.sample(); 

Wenn Sie es entfernen, sollten Sie Ihre Filter-Abfrage passende Tweets zu sehen beginnen.

Wenn Sie filter aufrufen, erhält Ihr Listener gefilterte Tweets, aber da Sie dann sample aufrufen, ersetzen Sie effektiv den gefilterten Stream, den Ihr Listener empfängt, mit dem Sample-Stream, der eine zufällige Auswahl Tweets ist.

Also mit anderen Worten, rufen Sie entweder sample oder filter, aber nicht beide.

+0

Großartig! Es war mein Problem. Ich habe noch eine andere kleine Frage. Wenn ich ein Keyword tracken möchte, das nicht häufig verwendet wird. Bin ich sicher, alle Tweets zu ernten? – Apaachee

+1

@Apachee Ich kann das nicht mit absoluter Sicherheit sagen, aber ich würde es erwarten. Ich habe die Dokumente überflogen und nichts bemerkenswertes bemerkt - mit Ausnahme von [Inhalte zurückgehalten] (http://dev.twitter.com/blog/new-withheld-content-fields-api-responses). – Jonathan

+0

Danke für alle Jonathan. – Apaachee