MongoDB Atlas - $search v/s $match

拉加夫

我正在使用 Node 和 MongoDB Atlas 构建一个 Web 应用程序。我需要实现一个搜索栏,它将用于在 2 个特定字段中搜索 MongoDB 集合。我正在研究构建它的最佳方法,但 Mongo 文档有点令人困惑。

Atlas Search 的这些文档提到了$search聚合阶段。另一方面,这些 MongoDB 聚合阶段的文档根本没有提到这个$search阶段。

我希望搜索是“模糊的”,这个答案说这应该使用正则表达式来完成,但我$regex在 Atlas Search 文档中找不到任何操作符的参考对于之前的任务,我创建了一个聚合管道,在其中使用了$match带有db.collection.aggregate(). 在我看来,$match操作符也应该适用于模糊搜索栏,因为它允许我使用$regex操作符。我相信$match也可以利用您可能在 Atlas 上为查询创建的任何索引。

所以我的问题基本上是这样的 - using$search之间有什么区别$match一个是否比另一个提供性能/成本优势?或者它们是否用于我完全缺少的不同用例?如果使用$search是要走的路,那么如何使查询变得模糊?我将不胜感激任何帮助。

好人

$search是实现搜索功能的最佳选择。它将产生更准确的结果,它将提供突出显示和自动完成等功能,并且在此用例中的性能更高。

在您完成实施时,这里是docs

下面是带有模糊匹配的简单查询的样子,使用模糊设置的默认值:

{
  $search: {
    "index": <index name>, // optional, defaults to "default"
    "text": {
      "query": "queryText",
      "path": "<fields-to-search>",
      "fuzzy": {
         "maxEdits": 2
       }
    }
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章