Java twitter4j-如果我使用自&;以来,则不会返回结果;直到限制

Java twitter4j-如果我使用自&;以来,则不会返回结果;直到限制,java,twitter,twitter4j,Java,Twitter,Twitter4j,当我向我的查询添加自&至限制时,尽管在此期间我的关键字有许多tweet,但不会返回任何结果。如果不使用,结果仍然相同,因为限制 如何使用twitter4j检索时间范围内的推文 以下是我的实现中的一个片段: Query query = new Query(); query.setQuery(topic + " +exclude:retweets"); query.setCount(100); query.setLang("en"); query.setSince("2015-08-29"); qu

当我向我的
查询添加
&
限制时,尽管在此期间我的关键字有许多tweet,但不会返回任何结果。如果不使用
,结果仍然相同,因为
限制

如何使用twitter4j检索时间范围内的推文

以下是我的实现中的一个片段:

Query query = new Query();
query.setQuery(topic + " +exclude:retweets");
query.setCount(100);
query.setLang("en");
query.setSince("2015-08-29");
query.setUntil("2015-11-29");
QueryResult result = twitter.search(query);
List < Status > tweets = result.getTweets();
Query Query=new Query();
setQuery(主题+“+排除:转发”);
query.setCount(100);
查询.setLang(“en”);
查询。设置原因(“2015-08-29”);
查询:截止日期(“2015-11-29”);
QueryResult result=twitter.search(查询);
Listtweets=result.getTweets();

另外,我使用的是最新稳定版本的twitter4j,它是4.0.4,,很遗憾,在这个时间范围内你无法收到tweet。 从:

搜索API不是所有推文的完整索引,而是最近推文的索引。目前,该指数包括6-9天的推特

因此,您只能从搜索API获取最近的推文。对数据也要小心,因为数据的相关性而非完整性来自同一文档:

Query query = new Query();
query.setQuery(topic + " +exclude:retweets");
query.setCount(100);
query.setLang("en");
query.setSince("2015-08-29");
query.setUntil("2015-11-29");
QueryResult result = twitter.search(query);
List < Status > tweets = result.getTweets();
在参与之前,重要的是要知道搜索API关注的是相关性而不是完整性。这意味着搜索结果中可能缺少一些推文和用户。如果您想匹配完整性,则应该考虑使用流式API。 如果你真的需要更老的推文,你必须从其他来源获得,比如。否则,您将不得不以不同的方式处理您的问题


如果您有所有想要获取信息的用户的姓名(或id),您可以从每个用户那里获得最多3200条推文。

据我所知,twitter4j流媒体API不允许设置时间范围,因为它的目标是实时流媒体数据。Gnip似乎是一种商业产品;我需要一个开源的解决方案。Twitter4j可以让你设置范围,但只针对Twitter搜索API(它只允许你返回几天)。据我所知,没有一个开源的解决方案来获取较旧的tweet,几个月前你可以用Topsy做一些小动作,但这项服务已经过时了