大数据集上的MongoDB文本搜索

时间:2015-06-15 18:25:56

标签: mongodb search optimization database

我有一个目前拥有770万条记录的图书集,我设置了如下文字索引,这样我就可以按titleauthor搜索集合,如下所示:

db.book.createIndex( { title: "text", author: "text" }, {sparse: true, background: true, weights: {title: 15, author: 5}, name: "text_index"} )

问题是,当我使用搜索查询返回大量结果时,例如John,然后按textScore排序,执行查询的时间超过60秒。

请参阅下面的示例查询:

db.runCommand(
  {
    aggregate: "book",
    pipeline : [
      { $match: { $text: { $search: "John" } } },
      { $sort: { score: { $meta: "textScore" } } },
      { $limit: 6 }
    ],
    allowDiskUse : true
  }
)

有人可以建议一个解决方案,将搜索时间缩短到合理的水平吗?

非常感谢。

0 个答案:

没有答案