我正在尝试在我的 node(express.js) 应用程序中实现 mongo 文本搜索。
这是我的代码:
Collection.find({$text: {$search: searchString}}
, {score: {$meta: "textScore"}})
.sort({score: {$meta: 'textScore'}})
.exec(function(err, docs {
//Process docs
});
在大型数据集上执行文本搜索时出现以下错误:
MongoError:执行程序错误:溢出排序阶段缓冲数据使用量 33554558 字节超出内部限制 33554432 字节
我知道 MongoDB 最多可以对 32MB 数据进行排序,并且可以通过为我们将用于排序集合的字段添加索引来避免此错误。但在我的情况下,我正在对集合进行排序textScore
,我不确定是否可以为该字段设置索引。如果没有,是否有任何解决方法?
注意:我知道关于 SO 有类似的问题,但这些问题中的大多数都没有textScore
作为排序标准,因此我的问题是不同的。