2013-12-03 138 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查找或訂閱發佈公告。