0

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:

  1. 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
  1. 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

0 Answers0