You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB $text搜索是否支持将字符串数组设置为同义词进行匹配?

你描述的功能真实存在,是MongoDB全文检索体系下的同义词映射功能,与$text全文搜索完全匹配。

该功能需要在创建文本索引时提前配置同义词分组,配置完成后执行$text查询时,MongoDB会自动将查询词替换为同组内的所有词汇进行匹配,无需额外修改查询逻辑。你提到的示例同义词组对应的索引创建代码如下:

db.你的集合名.createIndex(
  // 此处替换为你需要做全文检索的字段,支持多字段组合
  { 检索字段名: "text" },
  {
    synonyms: [
      {
        mapping: {
          synonyms: ["cheez", "cheese"],
          input: ["cheez", "cheese"]
        }
      },
      {
        mapping: {
          synonyms: ["donut", "doughnut"],
          input: ["donut", "doughnut"]
        }
      },
      {
        mapping: {
          synonyms: ["chips", "fries", "crisps"],
          input: ["chips", "fries", "crisps"]
        }
      }
    ]
  }
)

索引创建完成后,执行查询db.你的集合名.find({ $text: { $search: "chips" } })时,所有包含chips、fries、crisps任意一个词汇的文档都会被检索返回,完全符合你描述的效果。

注意事项:

  • 该功能仅在MongoDB 4.4及以上版本可用
  • 同义词映射仅对$text全文查询生效,正则匹配、普通字段等值查询不会触发该逻辑
  • 同义词组支持任意长度的词汇集合,可根据业务需求自行扩展

内容的提问来源于stack exchange,提问作者benmneb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 08:45:05