我正在寻找有关如何使用MongoDB 2.6改进文本搜索性能的一些建议。我也在使用Mongoose。
我的mongoose架构有'body:String',其中包含大量XML。我运行了EnsureIndex,花了几分钟......
db.models.ensureIndex({ body:"text"})
我想用用户定义的字符串搜索此文本。
Model.find({ $text: { $search: searchstr }},function(err,data){ });
虽然只有几千个文档,但搜索通常会超时(2分钟+)。我怎样才能提高我的表现?谢谢!
答案 0 :(得分:0)
AFAIK一般建议在处理textSearch时使用标准查找的管道框架。
例如做某事:
db.model.aggregate(
[
{ $match: { $text: { $search: "text" } } },
{ $sort: { score: { $meta: "textScore" } } },
{ $limit: 10 }
]
)
只会返回前10个元素。