我正在从Cloudera使用TwitterSource for Flume。我想通过某些关键字按国家/地区获取推文。当我想收到荷兰的推文时,我不确定要比较什么。我有以下内容导致没有任何处理:
public void onStatus(Status status) {
if(status.getPlace().getCountry().equalsIgnoreCase("netherlands")) {
headers.put("timestamp", String.valueOf(status.getCreatedAt().getTime()));
Event event = EventBuilder.withBody(DataObjectFactory.getRawJSON(status).getBytes(), headers);
channel.processEvent(event);
}
}
我不使用FilterQuery的原因是因为我想将此用于关键字。如果我将它结合起来,它将是逻辑OR,而不是AND。
FilterQuery query = new FilterQuery().track(keywords);
答案 0 :(得分:1)
通过分析,您会发现大部分推文都没有附加位置。此外,即使附加了位置,城市,州或国家也可能不可用或不正确。我也发现这些国家名称根本不存在的推文。 因此,您必须将城市名称(或州名称)映射到国家/地区名称,然后检查该国家/地区是否与荷兰匹配。使用Google地图实现此目标。
您也可以找到我的回答here。