我刚刚阅读了有关 Atlas Search 的教程。所以我尝试将搜索引擎与 autocomplete 集成。我尝试了一个代码。这是:
exports.search = (req, res, next) => {
Offer.aggregate([{
$search: {
"autocomplete": {
"query": req.params.id,
"path": "subcategory",
"fuzzy": {
"maxEdits": 2,
"prefixLength": 3
}
}
}
}], function(err, offers) {
if (err) {
res.status(400).json({ err });
console.log(err);
} else {
res.status(200).json(offers)
}
})
};
这里是搜索索引中的代码:
{
"mappings": {
"dynamic": false,
"fields": {
"subcategory": [
{
"foldDiacritics": false,
"maxGrams": 7,
"minGrams": 4,
"tokenization": "edgeGram",
"type": "autocomplete"
}
]
}
}
}
所以我有一个名为“子类别”的路径,因此我希望搜索词与子类别中的此内容相匹配。但是当我做测试时,我得到了数据库中的所有数据,而不仅仅是搜索词。我错过了什么吗?