我正在构建一个使用Apache Storm和Twitter4j库来处理实时Twitter的系统。但我有一个问题:有没有办法知道是哪个关键字过滤器给了我那条tweet?
的例子:
//Topology builder parameter
String keywords = {"Keyword 1", "Keyword 2"};
//Call of Twitter strem API return
@Override
public void execute(Tuple tuple, BasicOutputCollector collector) {
Status status = (Status) tuple.getValueByField("tweet");
System.out.println(status);
}
//Result of Sysout
StatusJSONImpl{createdAt=Thu Aug 20 16:55:52 BRT 2015, id=645265788760587264, text='RT @user: This is a Keyword 1 tweet' ... }
StatusJSONImpl{createdAt=Thu Aug 20 16:55:56 BRT 2015, id=645265788760587265, text='RT @user: This is a Keyword 2 tweet' ... }
如果没有字符串比较,我如何知道使用了哪个关键字?我没有找到任何具有关键字的对象属性,只有tweet数据。
Twitter Streaming API只返回标准的tweet有效负载,它不会添加任何额外的元数据。完成您所要求的任务的唯一方法是根据关键字列表处理消息客户端。