I am using Twitter4j for search tweets with a hashtag in the last 7 days as following:
Query query = new Query("#万博");
query.setResultType(Query.ResultType.recent);
query.setSince(LocalDate.now().minusDays(7).toString());
query.setCount(100);
List<Status> tweetList = new ArrayList<Status>();
int count = 0;
try {
QueryResult result;
do {
result = twitter.search(query);
List<Status> tweets = result.getTweets();
tweetList.addAll(tweets);
count += 1;
System.out.println("result size = "+tweets.size());
query = result.nextQuery();
//checkRateLimit(result);
} while (query != null);
} catch (TwitterException te) {
te.printStackTrace();
System.out.println("Failed to search tweets: " + te.getMessage());
}finally {
System.out.println("total query = "+count);
System.out.println("total result = "+tweetList.size());
return tweetList;
}
But I got 2 problems:
- Although, I'm using query.setCount = 100, but the result return is less than 100 though it still has next result. Why???
result size = 76
result size = 39
result size = 18
result size = 34
result size = 42
result size = 71
result size = 95
result size = 100
result size = 100
result size = 100
result size = 100
result size = 100
result size = 100
result size = 100
result size = 89
result size = 91
result size = 100
result size = 100
result size = 100
result size = 100
result size = 100
result size = 100
result size = 100
result size = 100
result size = 43
result size = 36
result size = 66
result size = 84
result size = 19
result size = 18
result size = 2
result size = 38
result size = 6
result size = 0
total query = 34
total result = 2367
- As in above, total result is 2367 in case of setCount = 100, but when I using query.setCount = 50, total result is only 2312 as following
result size = 35
result size = 40
result size = 24
result size = 9
result size = 5
result size = 13
result size = 20
result size = 14
result size = 4
result size = 34
result size = 39
result size = 32
result size = 37
result size = 50
result size = 50
result size = 50
result size = 50
result size = 50
result size = 50
result size = 50
result size = 50
result size = 50
result size = 50
result size = 50
result size = 50
result size = 50
result size = 50
result size = 50
result size = 50
result size = 43
result size = 27
result size = 50
result size = 50
result size = 50
result size = 50
result size = 50
result size = 50
result size = 50
result size = 50
result size = 50
result size = 50
result size = 50
result size = 50
result size = 50
result size = 50
result size = 50
result size = 50
result size = 50
result size = 32
result size = 16
result size = 19
result size = 20
result size = 25
result size = 27
result size = 42
result size = 50
result size = 23
result size = 9
result size = 6
result size = 12
result size = 5
result size = 0
total query = 62
total result = 2312
Please help me to explain why and how to resolve it! Thanks