Фильтровать поток 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

И я не восстанавливаю ключевые слова, за которыми я хочу следовать, где проблема?

Ответы

Ответ 1

Вам не нужно:

twitterStream.sample();

Если вы удалите его, вы должны начать просмотр твитов, соответствующих вашему запросу фильтра.

Когда вы вызываете filter, ваш слушатель будет получать отфильтрованные твиты, однако из-за того, что вы затем вызываете sample, вы эффективно заменяете фильтрованный поток, который ваш слушатель получает с образцом пара, который является случайным выбором Tweets.

Таким образом, иными словами, вызовите sample или filter, но не оба.