提高MongoDB文本搜索性能

时间:2014-07-01 16:10:01

标签: javascript node.js mongodb

我正在寻找有关如何使用MongoDB 2.6改进文本搜索性能的一些建议。我也在使用Mongoose。

我的mongoose架构有'body:String',其中包含大量XML。我运行了EnsureIndex,花了几分钟......

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

我想用用户定义的字符串搜索此文本。

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

虽然只有几千个文档,但搜索通常会超时(2分钟+)。我怎样才能提高我的表现?谢谢!

1 个答案:

答案 0 :(得分:0)

AFAIK一般建议在处理textSearch时使用标准查找的管道框架。

例如做某事:

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

只会返回前10个元素。