我已经流式传输并将大约25万条推文保存到MongoDB中,在这里,我正在检索它,正如您所看到的,基于推文中出现的单词或关键字.
Mongo mongo = new Mongo("localhost", 27017);
DB db = mongo.getDB("TwitterData");
DBCollection collection = db.getCollection("publicTweets");
BasicDBObject fields = new BasicDBObject().append("tweet", 1).append("_id", 0);
BasicDBObject query = new BasicDBObject("tweet", new BasicDBObject("$regex", "autobiography"));
DBCursor cur=collection.find(query,fields);
Run Code Online (Sandbox Code Playgroud)
我想要做的是使用Map-Reduce并根据关键字对其进行分类并将其传递给reduce函数来计算每个类别下的推文数量,有点像你在这里看到的.在这个例子中,他正在计算页数,因为它是一个简单的数字.我想做的事情如下:
"if (this.tweet.contains("kword1")) "+
"category = 'kword1 tweets'; " +
"else if (this.tweet.contains("kword2")) " +
"category = 'kword2 tweets';
Run Code Online (Sandbox Code Playgroud)
然后使用reduce函数来获取计数,就像在示例程序中一样.
我知道语法不正确,但这就是我想做的事情.有没有办法实现它?谢谢!
PS:哦,我用Java编写代码.因此,Java语法将受到高度赞赏.谢谢!
发布的代码输出如下:
{ "tweet" : "An autobiography is a book that reveals nothing bad about its writer except his memory."}
{ "tweet" : "I refuse …Run Code Online (Sandbox Code Playgroud)