我目前正在使用mongoose处理nodejs项目,并尝试使用mongoose功能全文搜索。所以首先我创建了我的模型的索引:
schema.index({author: 'text', email: 'text'});
接下来创建了功能搜索:
Database.prototype.Search = function(search,callback){
Model
.find(
{ $text : { $search : search } },
{ score : { $meta: "textScore" } }
)
.sort({ score : { $meta : 'textScore' } })
.exec(function(err, data) {
if (err) {
console.log(err.stack || err);
throw err;
} else {
callback(data);
}
});
};
为了完成,我创建了一些数据。
结果非常好奇,例如我在搜索"测试"它只返回一个结果(id:1),而它应该返回所有数据(id:1,2,3),因为它是一个全文搜索。
与电子邮件相同,当我正在搜索" test85264"它返回了我所有的数据,但如果我搜索" test8526"它没有给我任何回报。
我的代码中有错误或遗漏了什么?谢谢你的预付款!
PokeRwOw