我尝试使用twitter4j检索一组给定搜索字词的推文。
我可以成功检索只有一个术语的查询或使用OR运算符的查询的推文,但是当我在查询中输入AND条件时,我得到零结果。我已经完成了相同的查询on Twitter's search bar,我得到了数百个结果。
看起来this page引用了类似的问题,但没有列出的解决方案。
我想获得查询的结果" #treet java"
这是我完成搜索的方法......
// queryString = "#treet" - works
// queryString = "java" - works
// queryString = "#treet OR java" - works
// queryString = "#treet java" - doesn't work
// queryString = "#treet AND java" - doesn't work
public static Treet[] loadAndSaveRemote() {
Twitter twitter = TwitterFactory.getSingleton();
Query query = new Query();
query.setQuery(queryString);
query.setCount(100);
QueryResult result = null;
try {
result = twitter.search(query);
} catch (TwitterException e) {
System.out.println("Getting tweet failed");
e.printStackTrace();
}
List<Status> tweets = result.getTweets();
List<Treet> list = new ArrayList<>();
// With queries using "term1 term2" the output is "0 tweets were retrieved" in all cases
System.out.printf("%d tweets were retrieved %n", tweets.size());
for (Status status : tweets) {
list.add( new Treet(status.getUser().getScreenName(),
status.getText(),
status.getCreatedAt()));
}
Treet[] returning = list.toArray(new Treet[list.size()]);
Treets.save(returning);
return returning;
}
我查看了Twitter search api,我的查询语法似乎正确。我也看过使用类似格式的在线示例。
任何想法都会非常感激。