2013-12-03 104 views
0

我目前使用MongoDB的全文搜索功能来计算每小时包含某个关键字的文档数量。MongoDB全文搜索和聚合管道

当在每个文档都是Tweet的大集合中运行时,这非常有趣。例如,关键字“谢谢”我们会在11月29日看到(Thanks Giving)。

enter image description here

我目前的做法作品(它产生的上述地块),但它不会扩展。目前,我通过迭代搜索返回的文档来手动计算每小时的推文数量。这种方法不会扩展,因为此搜索结果最终将达到MongoDB文档限制。目前它的工作原理是因为我只有350万条推文,但我计划收集更多。

data = db.command('text', collection, 
    search=query, 
    project={'hour_bucket': 1, '_id': 0}, 
    limit=-1 
) 

hours = Counter() 
    for d in data['results']: 
    hours[d['obj']['hour_bucket']] += 1 

我的问题是:文本搜索可以在聚合管道内使用吗?这将解决我所有的问题。然而,我看到的唯一的评论如下:https://jira.mongodb.org/browse/SERVER-9063

有没有人知道这项工作的状态是什么?

回答

0

有点巧合的是,对于即将发布的MongoDB 2.5.5开发/不稳定版本(请参阅SERVER-11675),最近已使用标记为fixVersion的聚合框架支持文本搜索。

假设QA /测试一切顺利,此功能将包含在2.6生产版本中。

2.5.5发布后,应该会在draft 2.6 release notes中包含一些其他信息,我鼓励您在开发环境中测试此功能。

仅供参考,您可以通过mongodb-announce discussion group查找或订阅发布公告。