【问题标题】:Mongoose with search autocomplete index带有搜索自动完成索引的猫鼬
【发布时间】:2021-05-07 00:04:00
【问题描述】:

我想在 MongoDB Atlas 上的集合中的名称字段上自动完成搜索。我在 MongoDB atlas 中配置了一个搜索索引,如下所示:

{
  "mappings": {
    "dynamic": false,
    "fields": {
      "name": {
        "foldDiacritics": false,
        "maxGrams": 8,
        "type": "autocomplete"
      }
    }
  }
}

我正在尝试通过猫鼬搜索整个集合中的子字符串,如下所示:

collection.aggregate([
    {
      $search: {
        autocomplete: {
          path: 'name',
          query: query,
        },
      },
    },
    {
      $limit: 10,
    },
    {
      $project: {
        _id: 0,
        name: 1,
      },
    },
  ]);

我总是得到 0 个结果,有人能帮我理解我做错了什么吗?

谢谢, 埃雷兹

【问题讨论】:

  • 您能否提供您收藏中的文档和您运行的示例查询?
  • 感谢您的回复,我终于找到了问题所在。我的索引名称不是“默认”,当默认名称更改时,您应该在搜索中指定索引名称。我已将索引名称更改为“默认”并且可以正常工作!

标签: mongodb mongoose mongodb-query lucene mongodb-atlas-search


【解决方案1】:

问题是我更改了默认索引名称(即“默认”),在这种情况下,我需要在查询中指定新索引名称或将索引更改为“默认”。但是在 MongoDB 文档中没有发现任何提及。

【讨论】:

    猜你喜欢
    • 2021-03-31
    • 2015-08-19
    • 1970-01-01
    • 2018-10-07
    • 1970-01-01
    • 2021-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多