2013-05-21 15 views
15

Tôi đang cố gắng để lọc dòng twitter4j tôi với đoạn mã sau:Lọc twitter4j dòng

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

Nhưng kết quả là, ví dụ:

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 

Và tôi không phục hồi các từ khóa Tôi muốn làm theo, đâu là vấn đề?

Trả lời

29

Bạn không cần phải:

twitterStream.sample(); 

Nếu bạn gỡ bỏ nó, bạn nên bắt đầu thấy Tweets phù hợp với truy vấn bộ lọc của bạn.

Khi bạn gọi filter người nghe của bạn sẽ nhận được Tweets đã lọc, tuy nhiên vì sau đó bạn gọi sample bạn đang thay thế hiệu quả luồng mà người nghe của bạn đang nhận bằng hơi mẫu, đó là một lựa chọn ngẫu nhiên Tweets.

Vì vậy, nói cách khác, hãy gọi sample hoặc filter, nhưng không phải cả hai.

+0

Tuyệt vời! Đó là vấn đề của tôi. Tôi cũng có một câu hỏi nhỏ khác. Nếu tôi chọn theo dõi một từ khóa không được sử dụng nhiều. Tôi có chắc chắn gặt hái tất cả các tweet về không? – Apaachee

+1

@Apaachee Tôi không thể nói điều này hoàn toàn chắc chắn nhưng tôi mong đợi như vậy. Tôi lướt qua các tài liệu và không nhận thấy bất kỳ điều gì quan trọng - ngoại trừ [nội dung bị giữ lại] (http://dev.twitter.com/blog/new-withheld-content-fields-api-responses). – Jonathan

+0

Cảm ơn tất cả Jonathan. – Apaachee