2014-07-01 78 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个元素与许多最。