0

twitter4j クエリ インターフェイスを使用して、ツイートをフィルタリングしますhttp://twitter4j.org/javadoc/twitter4j/Query.html。しかし、https: //github.com/nathanmarz/storm-starter/blob/master/src/jvm/storm/starter/spout/TwitterSampleSpout.java:43 の Twitter スパウトは queue.offer(status) を使用します。Status への参照がありません。これらの API を統合してライブ ツイートを処理するにはどうすればよいですか。

4

1 に答える 1

0

これは、ツイートをフィルタリングするために使用して成功したものです。

public void open(Map conf, TopologyContext context, SpoutOutputCollector collector) {
    queue = new LinkedBlockingQueue<Status>(1000);
    _collector = collector;
    StatusListener listener = new StatusListener() {

        public void onStatus(Status status) {
            queue.offer(status);
        }

        public void onDeletionNotice(StatusDeletionNotice sdn) {
        }

        public void onTrackLimitationNotice(int i) {
        }

        public void onScrubGeo(long l, long l1) {
        }

        public void onException(Exception e) {
        }

    };
    TwitterStreamFactory fact = new TwitterStreamFactory(new ConfigurationBuilder().setUser(_username).setPassword(_pwd).build());
    _twitterStream = fact.getInstance();
    _twitterStream.addListener(listener);
    _twitterStream.filter(new FilterQuery().track(TERMS_TO_TRACK).setIncludeEntities(true));
}
于 2013-01-19T01:16:31.807 に答える