Twitter4JのfilterqueryはOR条件っぽい
JavaDocで確認したわけではないので、「っぽい」という語尾をつけたタイトルだけど、動作を見る限りOR条件になっているようだ。
下記コードは、「監視対象アカウント」のtweetの中で「test」というキーワードを含むtweetのみを監視したいと考えて書いたけど、実際は「監視対象アカウント」のtweet、もしくは「test」というキーワードを含むtweetが監視にかかる動作となった。
public static void main(String[] args) throws TwitterException { // Streaming TwitterStream twStream = TwitterStreamFactory.getSingleton(); TwitterStatusListenerImpl twitterStatusListenerImpl = new TwitterStatusListenerImpl(); twStream.addListener(twitterStatusListenerImpl); // Narrow down tweets to specific users FilterQuery filterquery = new FilterQuery(); Twitter tw = TwitterFactory.getSingleton(); String account= "監視対象アカウント"; User user = tw.showUser(account); long[] followers = new long[]{user.getId()}; filterquery.follow(followers); // Narrow down tweets to specific words String[] track = new String[]{"test"}; filterquery.track(track); // Do Streaming with the filterquery twStream.filter(filterquery);