Node js MongoDb Atlas 搜索自动完成

时间:2021-02-20 18:11:18

标签: node.js mongodb-atlas-search

我刚刚阅读了有关 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"
        }
      ]
    }
  }
}

所以我有一个名为“子类别”的路径,因此我希望搜索词与子类别中的此内容相匹配。但是当我做测试时,我得到了数据库中的所有数据,而不仅仅是搜索词。我错过了什么吗?

0 个答案:

没有答案
相关问题