2014-07-01 116 views
1

我正在尋找一些關於如何提高MongoDB 2.6的文本搜索性能的建議。我也在使用貓鼬。改善MongoDB文本搜索性能

我的貓鼬模式有'body:String',它包含大量的XML。我跑了花了幾分鐘的ensureIndex ...

db.models.ensureIndex({ body:"text"}) 

我想用一個用戶定義的字符串搜索此文本。

Model.find({ $text: { $search: searchstr }},function(err,data){ });

雖然只有幾千文件,搜索將經常超時(2分鐘+)。我怎樣才能提高我的表現?謝謝!

回答

0

AFAIK一般建議在處理textSearch時使用管道框架insted標準查找。

比如做一些如:

db.model.aggregate(
    [ 
    { $match: { $text: { $search: "text" } } }, 
    { $sort: { score: { $meta: "textScore" } } }, 
    { $limit: 10 } 
    ] 
) 

將僅返回前10個元素與許多最。