2013-05-21 9 views
15

Próbuję filtrować strumień twitter4j z następującego kodu:Filtr strumień 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(); 

Ale wynik jest, na przykład:

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 

I nie odzyskać słowa kluczowe Chcę śledzić, gdzie jest problem?

Odpowiedz

29

nie trzeba:

twitterStream.sample(); 

Jeśli go usunąć, należy rozpocząć widząc tweetów pasujących zapytanie filtra.

Po wywołaniu filter Twój słuchacz otrzyma przefiltrowane tweety, jednak ponieważ powołujesz się na sample, skutecznie wymieniasz przefiltrowany strumień, który odbiera Twój słuchacz, z próbką pary, która jest losowym wyborem tweetów.

Więc innymi słowy zadzwoń albo sample lub filter, ale nie obie.

+0

Świetnie! To był mój problem. Mam również inne małe pytanie. Jeśli zdecyduję się śledzić słowo kluczowe, które nie jest używane zbyt często. Czy na pewno mogę zebrać wszystkie tweety? – Apaachee

+1

@Apaachee Nie mogę tego powiedzieć z całkowitą pewnością, ale tak bym się spodziewał. Przeszukałem dokumenty i nie zauważyłem nic znaczącego - z wyjątkiem [wstrzymanych treści] (http://dev.twitter.com/blog/new-withheld-content-fields-api-responses). – Jonathan

+0

Dzięki za wszystkie Jonathan. – Apaachee

Powiązane problemy