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

MongoDB Atlas VectorSearch如何实现名称的大小写不敏感模糊查询?

解决MongoDB Atlas $vectorSearch中name字段大小写不敏感部分匹配问题

方案1:正则表达式实现任意子串匹配(快速落地)

直接将filter中的精确匹配替换为带忽略大小写选项的正则表达式,支持任意子串的大小写不敏感匹配。

示例聚合查询:

db.collection.aggregate([
  {
    $vectorSearch: {
      index: "你的向量索引名称",
      queryVector: [0.1, 0.2, ...], // 替换为实际查询向量
      path: "存储向量的字段名",
      numCandidates: 100,
      limit: 10,
      filter: {
        name: { $regex: "bill ga", $options: "i" }
      }
    }
  }
])
  • $options: "i" 用于忽略大小写
  • 如果输入的搜索词包含正则元字符(如.、*、?),需要先做转义处理,避免匹配异常

方案2:文本索引优化大数据量场景性能

如果数据集较大,正则表达式的匹配性能会下降,此时可以给name字段创建文本索引,基于分词实现高效的关键词匹配。

步骤1:创建文本索引

db.collection.createIndex({ name: "text" })

步骤2:结合$text查询实现匹配

db.collection.aggregate([
  {
    $vectorSearch: {
      index: "你的向量索引名称",
      queryVector: [0.1, 0.2, ...], // 替换为实际查询向量
      path: "存储向量的字段名",
      numCandidates: 100,
      limit: 10,
      filter: {
        $text: { $search: "bill ga" }
      }
    }
  }
])
  • 文本索引会自动忽略大小写,且基于分词匹配关键词,输入"bill"、"Bill Ga"都能匹配到"Bill Gates"
  • 如果需要精确匹配完整短语,可给搜索词加双引号:$search: "\"bill gates\""

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 16:57:08