搜索建议:疯狂的Mongo检索时间

时间:2016-06-30 02:37:40

标签: node.js mongodb search amazon-ec2 mlab

我试图在输入字段上实现实时搜索建议。检索时间平均为1500毫秒,对于23个文档的集合,检索时间平均为3000毫秒。

这是在MongoLab的Sandbox等级上使用"变量"内存; AWS EC2 T2.Medium。

对数据模型的相关字段进行索引(使用Mongoose)。这是我的检索查询。

model_user.find(
    { 'profile.local.displayName' : new RegExp( '^' + req.query.input, 'i') }
  , { 'profile.local.displayName' : 1, 'profile.local.photo' : 1 }) // photo is a url string
.limit(6)
.lean()
.exec(function (err, data) {
  if (err) return next(err);
  next(data);
}); // end exec

Mongo这是正常的吗?我是否应该使用.find()光标进行实时搜索建议?如果是这样,我还应该使用什么呢?

编辑(太平洋时间下午8:52):刚刚升级到MongoLab上的共享多节点副本集。查询速度没有变化。

编辑(太平洋时间下午9:13):对上一次编辑的更正,多节点群集上的新速度为550ms-650ms

编辑(太平洋时间下午9:56):@ jsh我不太熟悉.explain(),控制台告诉我它不是一个功能。根据{{​​3}}启用Mongoose调试器是等效的,所以这里是输出(从直接复制中未格式化)。

Mongoose: users.find({ 'profile.local.displayName': /^Daniel/i }) { limit: 6, fields: { 'profile.local.displayName': 1, 'profile.local.photo': 1 } }  
GET   [A] /api/search/username?input=Daniel           200 3.317s

0 个答案:

没有答案